【问题标题】:Winston log files lost on app restartWinston 日志文件在应用重新启动时丢失
【发布时间】:2015-03-31 01:00:02
【问题描述】:

我正在为 node.js 使用 Winston 记录器,每次我重新启动应用程序时,日志都会被空白日志覆盖,从重新启动的那一刻开始。 我需要保留日志,特别是当我必须重新启动应用程序时,因为它肯定是由于错误造成的。 我已经阅读了 GitHub 上的文档,但对此一无所获。 这就是我使用传输的方式:

winston.add(winston.transports.Console, {
    level: config.logLevel,
    silent: false,
    colorize: true, 
    timestamp: true
});
winston.add(winston.transports.File, {
    filename: config.logFile,
    maxsize: 524288000, // 500MB
    maxFiles: 4,
    handleExceptions: true,
    json: false,
    level: 'debug'
});

有没有办法在应用重启时轮换日志,以便我查看发生了什么? 谢谢!

【问题讨论】:

  • 只需在文件名中添加时间戳即可:config.logFile + Date.now() + '.log'

标签: node.js winston


【解决方案1】:

您可以通过使用 而不是文件名作为文件传输的选项来做到这一点:https://github.com/winstonjs/winston/blob/master/docs/transports.md#file-transport 打开一个文件进行附加,然后

winston.add(winston.transports.File, { stream: my_already_opened_file} )

如果这不可能,例如,您可以尝试根据进程号生成一个新文件名,或者使用其他日志记录选项。温斯顿似乎没有办法附加现有的日志文件。还有几种生成随机或临时文件名的方法:nodejs - Temporary file name 但您始终可以将文件名本身用作序列名称的存储:“log-x.log”,por 实例,并在开头读取文件您的程序并创建另一个序列号加一的程序

【讨论】:

猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 2019-08-29
  • 2015-07-03
  • 1970-01-01
  • 2019-10-26
  • 1970-01-01
  • 2016-08-23
  • 2021-07-08
相关资源
最近更新 更多