应用程序重启时Winston日志文件丢失

时间:2014-03-17 10:03:45

标签: node.js winston

我正在使用Winston logger for node.js,每次重新启动应用程序时,日志都会被空白覆盖,从重启时开始。 我需要保留日志,特别是当我必须重新启动应用程序时,因为它肯定是由于错误。 我已经阅读了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'
});

有没有办法在应用程序重启时轮换日志,这样我就可以看到发生了什么? 谢谢!

1 个答案:

答案 0 :(得分:0)

您可以使用而不是文件名作为文件传输的选项来执行此操作:https://github.com/winstonjs/winston/blob/master/docs/transports.md#file-transport打开要附加的文件,然后

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

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