어플리케이션을 운영하다보면 로그를 남기고 보관하는게 중요해진다.


- winston -

npm install winston -save

npm install winston-daily-rotate-file -save

npm install moment -save


로거(Logger)란 로그를 출력하는 객체를 뜻하며 transports 라는 속성값으로 설정 정보를 전달할 수 있다.


const winston = require('winston');
const winstonDaily = require('winston-daily-rotate-file');
const moment = require('moment');

function tsFormat() { //로그에 타임스탬프를 찍을 수 있게 설정한다.
return moment().format('YYYY-MM-DD HH:mm:ss.SSS ZZ');
}

const logger = new (winston.Logger)({
transports: [
new (winston.transports.Console)({
timestamp: tsFormat,
colorize: true,
showlevel: true,
level: 'debug',
}),
new (winstonDaily)({ //매일 새로운 파일에 로그를 기록하도록 설정

level: 'info',
filename: 'Log/logs',
timestamp: tsFormat,
datePattern: '_yyyy-MM-dd.log',
showlevel: true,
maxsize: 1000000, //로그 파일 크기가 10MB가 넘어가면 새로운 파일을 만듦
maxFiles: 5, //최대 5개까지 가능
}),

],
exceptionHandlers: [
new (winstonDaily)({
level: 'info',
filename: 'Log/exception',
timestamp: tsFormat,
datePattern: '_yyyy-MM-dd.log',
showlevel: true,
maxsize: 1000000,
maxFiles: 5,

}),
new (winston.transports.Console)({
timestamp: tsFormat,
colorize: true,
showlevel: true,
level: 'debug',
}),
],
});

logger.info('인포 로깅');
logger.error('에러 로깅');


level 설정은 어떤 정보까지 출력할 것인지 구분지으며 Logging Levels 로 구분된다. 하위 레벨은 상위레벨의 정보를 모두 포함한다.

 emerg

0

 alert

 crit

 error

 warning

 notice

 info

 debug


속성에 대한 상세한 내용은 여기를 참고하자.


'공부 > Node.js' 카테고리의 다른 글

쿠키와 세션  (1) 2019.04.02
express  (0) 2019.03.08
템플릿 엔진 모듈 - ejs, pug 모듈  (0) 2019.03.07
크롤링 - cheerio, iconv-lite 모듈  (1) 2019.03.07
npm  (0) 2019.03.06

+ Recent posts