2017-10-09 34 views
0

내 노드 응용 프로그램은 현재 콘솔 로깅을 위해 Winston을 사용하고 있지만 개발 환경에서 디버깅하기 어려운 다양한 문제가 있습니다. 경고 및 오류 만 기록하고 로그를 텍스트 파일에 저장하는 로거를 만들어야합니다. 간격을 회전시키고 일요일 자정마다 다시 시작해야합니다. 이는 윈스턴를 사용하여 내 현재 로거 :Winston과 pm2를 특정 일정으로 순환하는 로깅을 위해 결합하는 방법

'use strict'; 

const winston = require('winston'); 
const m = require('moment-timezone'); 
let logger = null; 

/** 
* Initializes the logger 
* @param {object} configLogging 
*/ 
module.exports.initialize = function initialize(configLogging) { 
    const dateFormat = 'dddd, MMMM Do YYYY, h:mm:ss a'; 

    logger = new winston.Logger({ 
    transports: [ 
     new (winston.transports.Console)({ 
     name: 'info-console', 
     level: configLogging.level, 
     colorize: true, 
     timestamp: function() { return m.utc().format(dateFormat); } 
     }) 
    ] 
    }); 

    logger.info('Starting logging service'); 
}; 

/** 
* Gets the logger instance 
* @returns {LoggerInstance} winLogger 
*/ 
module.exports.get = function get() { 
    return logger; 
}; 

내가 PM2-logrotate에 내가 원하는 일을 할 수 있어야한다고 들었다,하지만 난 내 응용 프로그램에 통합 할 수있는 방법을 모르겠어요.

답변

2

로그 순환을 처리하려면 pm2를 구성해야합니다. 코드에서 우선 winston을 설정하여 warn 수준의 file (winston.transports.File)에 로그인하십시오.

그런 다음 콘솔에서 PM2의 logrotate에 설치 :

pm2 install pm2-logrotate

구성 그것을 :

pm2-logrotate:rotateInterval '0 0 * * 0' //

documentation

시작에서 더 많은 구성 옵션을 참조 자정 매주 일요일 앱 : pm2 start 및 모든 모양 구성을 저장하는 것이 좋습니다. pm2 save