어플리케이션을 운영하다보면 로그를 남기고 보관하는게 중요해진다.
- 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 |
1 |
crit |
2 |
error |
3 |
warning |
4 |
notice |
5 |
info |
6 |
debug |
7 |
속성에 대한 상세한 내용은 여기를 참고하자.
'공부 > 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 |