永远记录和logrotate

时间:2014-04-18 10:17:38

标签: node.js logging logfile forever logrotate

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

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

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

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

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

因此,循环工作正常,但日志消息现在用api_output.log-20140418编写,而不是api_output.log

也许有人可以帮助我?

2 个答案:

答案 0 :(得分:19)

我忘记了配置文件中的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  
}

答案 1 :(得分:0)

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

永远使用文件流来记录日志文件。并且您通过logrotate重命名了此文件。但流不会改变。 所以日志消息是用api_output.log-20140418编写的。

如果要更改流,则应按node.js代码轮换,或使用管道。