Task 1-1: Replace console.log với NestJS Logger trong Marketplace Processor
Phase: 1 Priority: Medium Module:
marketplaceDepends on: Không có Reference: docs/bountyhunter-blockchain-p2/details/feature-marketplace/SPEC.md
Background
MarketplaceProcessor (1198 dòng) đã khai báo private readonly logger = new Logger(MarketplaceProcessor.name) nhưng vẫn còn rất nhiều console.log rải rác trong tất cả các @Process() handler. File lớn với 10+ handler xử lý Solana, EVM, ImmutableX — thiếu structured log gây khó debug khi có sự cố. Cần thống nhất sang NestJS Logger với format có context rõ ràng.
Tasks
Note:
Loggerđã được khai báo trongMarketplaceProcessor— chỉ cần thay thếconsole.logcalls còn lại. Đảm bảo thêm context identifier[MARKETPLACE]và các field quan trọng:action,status,txHash,jobId. VớiMarketplaceService, thêmprivate readonly logger = new Logger(MarketplaceService.name)nếu chưa có.
- [ ] Tìm toàn bộ
console.logvàconsole.errortrongmarketplace.processor.tsvàmarketplace.service.ts:grep -n "console\." src/marketplace/marketplace.processor.ts | wc -l - [ ] Thay thế tất cả
console.logbằngthis.logger.log(...)với format context:// Trước: console.log('handleSendAdminSellNft success', txHash); // Sau: this.logger.log( `[MARKETPLACE] action=ADMIN_SELL_NFT jobId=${job.id} status=success txHash=${txHash}` ); - [ ] Thay thế
console.errorbằngthis.logger.error(...)kèm stack trace:// Trước: console.error('handleSendAdminSellNft error', error); // Sau: this.logger.error( `[MARKETPLACE] action=ADMIN_SELL_NFT jobId=${job.id} status=error message=${error.message}`, error.stack ); - [ ] Áp dụng cho tất cả 10+ handler:
handleSendAdminSellNft,handleUserBuyNft,handleListingNft,handleCancelListingNft,handleBurnTicket, và các handler còn lại - [ ] Log ở đầu và cuối mỗi handler để trace thời gian xử lý:
this.logger.log(`[MARKETPLACE] action=ADMIN_SELL_NFT jobId=${job.id} status=started`); // ...processing... this.logger.log(`[MARKETPLACE] action=ADMIN_SELL_NFT jobId=${job.id} status=completed duration=${Date.now() - startTime}ms`);
Verification / Acceptance Criteria
- [ ]
grep -n "console\." src/marketplace/marketplace.processor.tstrả về kết quả rỗng - [ ]
grep -n "console\." src/marketplace/marketplace.service.tstrả về kết quả rỗng - [ ] Log khi job thành công có format:
[MARKETPLACE] action=... jobId=... status=success txHash=... - [ ] Log khi job thất bại có format:
[MARKETPLACE] action=... jobId=... status=error message=... - [ ] TypeScript compile không có lỗi
Files to Modify
src/marketplace/marketplace.processor.tssrc/marketplace/marketplace.service.ts