gpt4 book ai didi

node.js - 如何结合 Winston 和 pm2 进行按特定计划轮换的日志记录

转载 作者:太空宇宙 更新时间:2023-11-04 03:24:18 27 4
gpt4 key购买 nike

我的 Node 应用程序目前使用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 应该能够做我想做的事情,但我不确定如何将它集成到我的应用程序中。

最佳答案

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

然后从控制台安装 pm2 logrotate:

pm2 安装 pm2-logrotate

配置它:

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

documentation查看更多配置选项

启动您的应用程序:pm2 start,当一切看起来不错时保存配置:pm2 save

关于node.js - 如何结合 Winston 和 pm2 进行按特定计划轮换的日志记录,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/46638810/

27 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com