我正在使用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'
});
有没有办法在应用程序重启时轮换日志,这样我就可以看到发生了什么? 谢谢!
答案 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的文件