30 lines
764 B
JavaScript
30 lines
764 B
JavaScript
// utils/logger.mjs
|
|
import dotenv from 'dotenv';
|
|
dotenv.config(); // Ensure .env variables are loaded
|
|
|
|
const LOG_LEVEL = process.env.LOG_LEVEL || 'info'; // Example: 'debug', 'info', 'warn', 'error'
|
|
|
|
const levels = {
|
|
error: 0,
|
|
warn: 1,
|
|
info: 2,
|
|
debug: 3,
|
|
};
|
|
|
|
const currentLevel = levels[LOG_LEVEL.toLowerCase()] ?? levels.info;
|
|
|
|
const log = (level, ...args) => {
|
|
if (levels[level] <= currentLevel) {
|
|
const timestamp = new Date().toISOString();
|
|
console[level](`[${timestamp}] [${level.toUpperCase()}]`, ...args);
|
|
}
|
|
};
|
|
|
|
export const logger = {
|
|
error: (...args) => log('error', ...args),
|
|
warn: (...args) => log('warn', ...args),
|
|
info: (...args) => log('info', ...args),
|
|
debug: (...args) => log('debug', ...args),
|
|
};
|
|
|
|
export default logger; |