当日志文件由OS滚动时,Node.js日志记录会出现问题。

时间:2016-10-03 11:57:04

标签: node.js linux logging

我有Node.js应用程序,该应用程序在Linux系统下运行并使用log4js日志库。日志文件每天由Linux滚动系统滚动。问题如下:有人知道如何强制log4js重新创建并使用原始日志文件,当它以某种方式重命名时? 注意,Log4js继续将日志写入重命名的文件(似乎保留了流描述符)。 另请注意,我不想使用log4js DaylyRollingFileAppender,因为我的日志文件夹包含由各种语言(Java,Python,JavaScript,Bash ......)生成的日志文件。

1 个答案:

答案 0 :(得分:0)

我假设您使用logrotate

您可以尝试在logrotate配置文件中使用'reload'指令。 (详见:http://www.linuxcommand.org/man_pages/logrotate8.html

似乎 log3js 可以处理SIGHUP。 (问题:https://github.com/nomiddlename/log4js-node/issues/343,请求提取:https://github.com/nomiddlename/log4js-node/pull/403

辅助解决方案是将其配置为使用'copytruncate'指令,但它有权衡: https://serverfault.com/questions/688658/rsyslog-with-logrotate-reload-rsyslog-vs-copytruncate