https://www.npmjs.com/package/winston
쓸만한 logger 모듈을 찾았다.
/**
* logger.js
*/
const winston = require('winston'); // logger 모듈.
const moment = require('moment'); // 현재 시간 값 가져와 사용하기 편한 모듈.
const winstonRotate = require('winston-daily-rotate-file'); // 날짜 별로 로그를 구분하기 위해 별도로 사용하는 모듈.
const LOG_PATH = "./log";
/*
const levels = {
error: 0,
warn: 1,
info: 2,
http: 3,
verbose: 4,
debug: 5,
silly: 6
};
/**/
const logger = new winston.createLogger({
transports: [
// console로 출력할 때
new winston.transports.Console({
level: 'debug',
format: winston.format.printf(
data => `${moment().format(`YYYY-MM-DD HH:mm:ss.SSS`)} [${data.level.toUpperCase()}] -> ${data.message}`),
}),
// file output. 파일 저장 시간 별로 별도 저장.
new winstonRotate({
level: 'debug',
filename: `${LOG_PATH}/log_`,
maxsize: 100, // byte 단위이나, 제대로 작동 안하는 듯 하다.
maxFiles : 1024,
// 기록되는 출력 포맷.
format: winston.format.printf(
data => `${moment().format(`YYYY-MM-DD HH:mm:ss.SSS`)} [${data.level.toUpperCase()}] -> ${data.message}`),
}),
]
});
module.exports = logger;