Forever log and logrotate

被刻印的时光 ゝ 提交于 2019-12-03 11:47:06

问题


I use forever to launch my nodeJs server and I choose the log file :

forever -l /home/api/log/api_output.log start server.js

I use logrotate to move logfile every day (like advise here : NodeJS/Forever archive logs), after one day my directory is like this :

-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

So, rotation is working, but the logs messages are now written in api_output.log-20140418, instead of api_output.log

Maybe somebody can help me ?


回答1:


I forgot copytruncate option in my config file, now it's working :

/etc/logrotate.d/api :

/home/api/log/api_output.log {
  #size 50k
  daily
  dateext
  missingok
  rotate 7
  compress
  delaycompress
  notifempty
  #create 644 root
  copytruncate  
}



回答2:


i think it's because of living stream between forever and the log file.

forever use file stream to log file. and you renamed this file by logrotate. but stream don't change. so log messages were written in api_output.log-20140418.

if you want to change stream, you should rotate by node.js code, or use pipeline.



来源:https://stackoverflow.com/questions/23152038/forever-log-and-logrotate

易学教程内所有资源均来自网络或用户发布的内容,如有违反法律规定的内容欢迎反馈
该文章没有解决你所遇到的问题?点击提问,说说你的问题,让更多的人一起探讨吧!