【问题标题】:How do I combine Winston and pm2 for logging that rotates at a specific schedule如何结合 Winston 和 pm2 进行按特定时间表轮换的日志记录
【发布时间】:2018-03-20 05:05:39
【问题描述】:

我的节点应用程序目前正在使用 Winston 进行控制台日志记录,但是在开发环境中存在各种难以调试的问题。我需要创建一个仅记录警告和错误并将日志保存到文本文件的记录器。它应该轮换间隔并在周日的每个午夜重新启动。这是我目前使用 Winston 的记录器:

'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 应该可以做我想做的事,但我不确定如何将它集成到我的应用中。

【问题讨论】:

    标签: node.js logging pm2 winston log-rotation


    【解决方案1】:

    您需要配置 pm2 来处理日志轮换。在您的代码中,首先将 winston 设置为以 warn 级别登录到 file (winston.transports.File)。

    然后从控制台安装 pm2 logrotate:

    pm2 install pm2-logrotate

    配置它:

    pm2-logrotate:rotateInterval '0 0 * * 0' //每周日午夜

    documentation查看更多配置选项

    启动您的应用程序:pm2 start,当一切正常时保存配置:pm2 save

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 2018-06-20
      • 2015-01-18
      • 1970-01-01
      • 2018-06-21
      • 2014-11-04
      • 2014-01-06
      • 2012-01-18
      • 1970-01-01
      相关资源
      最近更新 更多