1

我正在为 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'
});

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

4

1 回答 1

0

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

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

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

于 2015-03-30T16:06:45.207 回答