40 lines
1.1 KiB
JavaScript
40 lines
1.1 KiB
JavaScript
const winston = require('winston');
|
|
const winstonDaily = require('winston-daily-rotate-file');
|
|
const process = require('process');
|
|
|
|
const { combine, timestamp, label, printf } = winston.format;
|
|
|
|
const logDir = `${process.cwd()}/logs`;
|
|
|
|
const logFormat = printf(({ level, message, label, timestamp }) => {
|
|
return `${timestamp} [${label}] ${level}: ${message}`;
|
|
});
|
|
|
|
const logger = winston.createLogger({
|
|
format: combine(
|
|
timestamp({ format: 'YYYY-MM-DD HH:mm:ss' }),
|
|
label({ label: 'error 테스트: ' }),
|
|
logFormat
|
|
),
|
|
transports: [
|
|
new winstonDaily({
|
|
level: 'error',
|
|
datePattern: 'YYYY-MM-DD',
|
|
dirname: logDir,
|
|
filename: `%DATE%.error.log`,
|
|
maxFiles: 15, // 15일이후 삭제
|
|
}),
|
|
],
|
|
exceptionHandlers: [
|
|
new winstonDaily({
|
|
level: 'error',
|
|
datePattern: 'YYYY-MM-DD',
|
|
dirname: logDir,
|
|
filename: `%DATE%.exception.log`,
|
|
maxFiles: 15, // 15일이후 삭제
|
|
}),
|
|
],
|
|
});
|
|
|
|
module.exports = logger;
|