start
This commit is contained in:
48
utils/logger.js
Normal file
48
utils/logger.js
Normal file
@@ -0,0 +1,48 @@
|
||||
import fs from 'fs';
|
||||
import path from 'path';
|
||||
|
||||
const logDir = path.join(process.cwd(), 'logs');
|
||||
if (!fs.existsSync(logDir)) {
|
||||
fs.mkdirSync(logDir, { recursive: true });
|
||||
}
|
||||
|
||||
const LEVELS = {
|
||||
ERROR: 'ERROR',
|
||||
WARN: 'WARN',
|
||||
INFO: 'INFO',
|
||||
DEBUG: 'DEBUG'
|
||||
};
|
||||
|
||||
const getCurrentTimestamp = () => {
|
||||
return new Date().toISOString();
|
||||
};
|
||||
|
||||
const writeLog = (level, message, meta = {}) => {
|
||||
const timestamp = getCurrentTimestamp();
|
||||
const logEntry = {
|
||||
timestamp,
|
||||
level,
|
||||
message,
|
||||
meta
|
||||
};
|
||||
|
||||
console.log(`[${timestamp}] ${level}: ${message}`, meta);
|
||||
|
||||
const logFileName = `${new Date().toISOString().slice(0, 10)}.log`;
|
||||
const logFilePath = path.join(logDir, logFileName);
|
||||
|
||||
fs.appendFile(logFilePath, JSON.stringify(logEntry) + '\n', (err) => {
|
||||
if (err) {
|
||||
console.error('Failed to write log to file:', err);
|
||||
}
|
||||
});
|
||||
};
|
||||
|
||||
const logger = {
|
||||
error: (message, meta) => writeLog(LEVELS.ERROR, message, meta),
|
||||
warn: (message, meta) => writeLog(LEVELS.WARN, message, meta),
|
||||
info: (message, meta) => writeLog(LEVELS.INFO, message, meta),
|
||||
debug: (message, meta) => writeLog(LEVELS.DEBUG, message, meta)
|
||||
};
|
||||
|
||||
export default logger;
|
||||
Reference in New Issue
Block a user