Files
Nostr-post-scheduler/src/utils/logger.js
T
2025-03-01 16:46:45 +01:00

43 lines
1.1 KiB
JavaScript

const winston = require('winston');
const path = require('path');
const fs = require('fs');
// Create logs directory if it doesn't exist
const logDir = 'logs';
if (!fs.existsSync(logDir)) {
fs.mkdirSync(logDir);
}
// Define log format
const logFormat = winston.format.combine(
winston.format.timestamp({ format: 'YYYY-MM-DD HH:mm:ss' }),
winston.format.printf(({ timestamp, level, message }) => {
return `${timestamp} [${level.toUpperCase()}]: ${message}`;
})
);
// Create logger
const logger = winston.createLogger({
level: process.env.NODE_ENV === 'production' ? 'info' : 'debug',
format: logFormat,
transports: [
// Console transport
new winston.transports.Console({
format: winston.format.combine(
winston.format.colorize(),
logFormat
)
}),
// File transport for errors
new winston.transports.File({
filename: path.join(logDir, 'error.log'),
level: 'error'
}),
// File transport for all logs
new winston.transports.File({
filename: path.join(logDir, 'combined.log')
})
]
});
module.exports = logger;