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:
@@ -3,6 +3,7 @@
|
||||
import db from "../config/database.js";
|
||||
import Wallet from "../models/Wallet.js";
|
||||
import WalletUtils from "../utils/walletUtils.js";
|
||||
import logger from "../utils/logger.js";
|
||||
|
||||
const ALLOWED_USER_FIELDS = new Set([
|
||||
'telegram_id', 'username', 'country', 'city',
|
||||
@@ -35,7 +36,6 @@ class UserService {
|
||||
try {
|
||||
// Нормализуем и валидируем telegram_id
|
||||
const normalizedTelegramId = this.normalizeTelegramId(userData?.telegram_id);
|
||||
// console.log("Normalized telegram_id:", normalizedTelegramId); // Отладочный вывод
|
||||
this.validateTelegramId(normalizedTelegramId);
|
||||
|
||||
// Обновляем значение telegram_id в объекте userData
|
||||
@@ -44,7 +44,7 @@ class UserService {
|
||||
// Проверяем, существует ли пользователь с таким telegram_id
|
||||
const existingUser = await this.getUserByTelegramId(normalizedTelegramId);
|
||||
if (existingUser) {
|
||||
console.log("User already exists with telegram_id:", normalizedTelegramId);
|
||||
logger.info({ telegramId: normalizedTelegramId }, 'User already exists');
|
||||
return existingUser.id;
|
||||
}
|
||||
|
||||
@@ -70,7 +70,7 @@ class UserService {
|
||||
return result.lastID;
|
||||
} catch (error) {
|
||||
await db.runAsync('ROLLBACK');
|
||||
console.error('Error creating user:', error);
|
||||
logger.error({ err: error }, 'Error creating user');
|
||||
throw error;
|
||||
}
|
||||
}
|
||||
@@ -82,7 +82,7 @@ class UserService {
|
||||
[String(userId)]
|
||||
);
|
||||
} catch (error) {
|
||||
console.error('Error getting user:', error);
|
||||
logger.error({ err: error }, 'Error getting user');
|
||||
throw error;
|
||||
}
|
||||
}
|
||||
@@ -95,7 +95,7 @@ class UserService {
|
||||
[normalizedTelegramId]
|
||||
);
|
||||
} catch (error) {
|
||||
console.error('Error getting user:', error);
|
||||
logger.error({ err: error }, 'Error getting user');
|
||||
throw error;
|
||||
}
|
||||
}
|
||||
@@ -120,7 +120,7 @@ class UserService {
|
||||
GROUP BY u.id
|
||||
`, [normalizedTelegramId]);
|
||||
} catch (error) {
|
||||
console.error('Error getting user stats:', error);
|
||||
logger.error({ err: error }, 'Error getting user stats');
|
||||
throw error;
|
||||
}
|
||||
}
|
||||
@@ -169,9 +169,9 @@ class UserService {
|
||||
[remainingBalance, user.id]
|
||||
);
|
||||
|
||||
console.log(`[DEBUG] Updated total_balance for user ${user.id}: ${remainingBalance}`);
|
||||
logger.debug({ userId: user.id, remainingBalance }, 'Updated total_balance');
|
||||
} catch (error) {
|
||||
console.error('Error recalculating user balance:', error);
|
||||
logger.error({ err: error }, 'Error recalculating user balance');
|
||||
throw error;
|
||||
}
|
||||
}
|
||||
@@ -196,7 +196,7 @@ class UserService {
|
||||
await db.runAsync('COMMIT');
|
||||
} catch (e) {
|
||||
await db.runAsync("ROLLBACK");
|
||||
console.error('Error deleting user:', e);
|
||||
logger.error({ err: e }, 'Error deleting user');
|
||||
throw e;
|
||||
}
|
||||
}
|
||||
@@ -211,7 +211,7 @@ class UserService {
|
||||
// Возвращаем сумму доступного крипто-баланса и бонусного баланса
|
||||
return user.total_balance + user.bonus_balance;
|
||||
} catch (error) {
|
||||
console.error('Error getting user balance:', error);
|
||||
logger.error({ err: error }, 'Error getting user balance');
|
||||
throw error;
|
||||
}
|
||||
}
|
||||
|
||||
Reference in New Issue
Block a user