본문 바로가기

Programing/node js

node js Winston 로그 남기기

 

Winston

 

npm install winston winston-daily-rotate-file --save

 

winston.js 생성

 


/**
 * winston@3.x
 * reference site: https://thisdavej.com/using-winston-a-versatile-logging-library-for-node-js/
 */

const { createLogger, format, transports } = require("winston");
require("winston-daily-rotate-file");
const fs = require("fs");
const { addColors } = require("winston/lib/winston/config");


//const env = process.env.NODE_ENV || "production"; // production
const logDir = __dirname + "/logs";
//console.log("logDir : ", logDir);

// Create the log directory if it does not exist
if(!fs.existsSync(logDir)) {
    fs.mkdirSync(logDir);
}


const dailyRotateFileTransport = new transports.DailyRotateFile({
    level: "info",
    filename: `${logDir}/%DATE%_exception.log`,
    datePattern: "YYYY-MM-DD",
    //zippedArchive: true,
    maxSize: "5m",
    maxFiles: "30d" // 로그 파일 30일간 보관
});


const logger = createLogger({
  //level: env === "development" ? "debug" : "info",
  
    format: format.combine(
        format.timestamp({
            format: "YYYY-MM-DD HH:mm:ss"
        }),
        format.printf(
            info => `${info.timestamp} ${info.message}` // ${info.level}
        ),
        format.json(),
    ),

    transports: [
        dailyRotateFileTransport,
    ]

});

module.exports = logger;

/exampleLogger 로 접속할 경우

"use strict";

const logger = require("../winston");

const exampleLogger = function(request, response) {

    logger.info('Hello Winston info!');
    logger.debug('Hello Winston debug!');
    logger.warn('Hello Winston warn!');
    logger.info('Hello again distributed logs'); 
    logger.error('error1');
    logger.error('error2');
}

module.exports = exampleLogger;

날짜별 로그파일 생성

 

Logging Level

const levels = { 
  error: 0,
  warn: 1,
  info: 2,
  http: 3,
  verbose: 4,
  debug: 5,
  silly: 6
};

위험레벨별 로그지원

 

 

깃허브 공식사이트

github.com/winstonjs/winston

'Programing > node js' 카테고리의 다른 글

node js request response 요청 응답 객체  (0) 2021.01.06
node js Express Router 관리, 분리  (0) 2021.01.06
node js express-generator 설치  (0) 2021.01.05
node js express 구축  (0) 2021.01.04
node js 설치  (0) 2021.01.04