만쥬의 개발일기

자바스크립트 코드 작성시 로거의 필요성을 느껴 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

profile

만쥬의 개발일기

@KangManJoo

포스팅이 좋았다면 "좋아요❤️" 또는 "구독👍🏻" 해주세요!