feat(logging): replace 207 console.log/error/warn with pino structured logger (#58)
- Add pino + pino-pretty dependencies - Create src/utils/logger.js with env-based LOG_LEVEL - Replace all 207 console.log/error/warn calls across 46 source files - Remove [DEBUG], [ERROR] string prefixes (levels convey this) - Add pino redact for sensitive fields (mnemonic, privateKey, token, etc.) - Structured logging with context objects instead of string interpolation - NODE_ENV=production disables pino-pretty transport 49 files changed, 5601 insertions, 6056 deletions
This commit is contained in:
@@ -1,6 +1,8 @@
|
||||
import logger from './logger.js';
|
||||
|
||||
export default class ErrorHandler {
|
||||
static async handleError(bot, chatId, error, context) {
|
||||
console.error(`Error in ${context}:`, error);
|
||||
logger.error({ err: error, context }, 'Error in handler');
|
||||
|
||||
const errorMessage = process.env.NODE_ENV === 'development'
|
||||
? `Error: ${error.message}`
|
||||
@@ -9,16 +11,16 @@ export default class ErrorHandler {
|
||||
try {
|
||||
await bot.sendMessage(chatId, errorMessage);
|
||||
} catch (sendError) {
|
||||
console.error('Error sending error message:', sendError);
|
||||
logger.error({ err: sendError }, 'Error sending error message');
|
||||
}
|
||||
}
|
||||
|
||||
static handlePollingError(error) {
|
||||
if (error.code === 'ETELEGRAM') {
|
||||
console.error('Telegram API Error:', error.message);
|
||||
logger.error({ err: error }, 'Telegram API Error');
|
||||
process.exit(1);
|
||||
} else {
|
||||
console.error('Polling error:', error);
|
||||
logger.error({ err: error }, 'Polling error');
|
||||
}
|
||||
}
|
||||
}
|
||||
Reference in New Issue
Block a user