자바스크립트 코드 작성시 로거의 필요성을 느껴 Winston이라는 라이브러리를 사용해 로깅을 해보자.
모듈 설치
npm install winston --save
npm install winston-daily-rotate-file --save
npm install moment
npm install app-root-path
Logger.js 작성
const appRoot = require('app-root-path'); // root 경로를 가져오기 위해 사용
var winston = require('winston'); // log 파일 작성
require('winston-daily-rotate-file'); // log 파일을 일자별로 생성하기 위해 사용
const moment = require('moment');
var transport = new winston.transports.DailyRotateFile({
filename: `${appRoot}/logs/application-%DATE%.log`,
maxsize: 1024,
datePatten: 'YYYY-MM-DD-HH',
format: winston.format.combine(
winston.format.timestamp(),
winston.format.printf((info) => {
return `[${moment().format('YYYY-MM-DD HH:mm:ss')}] ${info.level}: ${info.message}`;
})
),
});
var logger = winston.createLogger({
transports: [transport],
});
module.exports = logger;
사용
const logger = require('../Logger') //CommonJS 기준
ex) logger.log('info', '에러처리')
reference
'♾️Language & Framework > 🎈Javascript' 카테고리의 다른 글
[Puppeteer / Trouble Shooting] puppeteer가 좀비 프로세스를 종료하지 않는 문제 (0) | 2024.01.17 |
---|---|
[JavaScript] - 자바스크립트 유닛 테스트 도구인 Jest 사용법 (1) | 2024.01.09 |