16

我永远使用启动我的 nodeJs 服务器并选择日志文件:

永远 -l /home/api/log/api_output.log 启动 server.js

我每天都使用 logrotate 来移动日志文件(比如在这里建议:NodeJS/Forever 归档日志),一天后我的目录是这样的:

-rw-r--r-- 1 根根 0 avril 18 12:00 api_output.log

-rw-r--r-- 1 根 95492 avril 18 12:01 api_output.log-20140418

因此,轮换工作正常,但日志消息现在写入 api_output.log-20140418,而不是 api_output.log

也许有人可以帮助我?

4

2 回答 2

20

我在我的配置文件中忘记了 copytruncate 选项,现在它正在工作:

/etc/logrotate.d/api :

/home/api/log/api_output.log {
  #size 50k
  daily
  dateext
  missingok
  rotate 7
  compress
  delaycompress
  notifempty
  #create 644 root
  copytruncate  
}
于 2015-04-08T12:16:37.293 回答
0

我认为这是因为永远和日志文件之间的实时流。

永远使用文件流来记录文件。你用 logrotate 重命名了这个文件。但流不会改变。所以日志消息写在 api_output.log-20140418 中。

如果你想改变流,你应该通过 node.js 代码旋转,或者使用管道。

于 2014-12-16T13:12:45.363 回答