web-dev-qa-db-ja.com

永遠にログとログローテーション

NodeJsサーバーを起動するために永遠に使用し、ログファイルを選択します。

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

私はlogrotateを使用してログファイルを毎日移動しています(ここでアドバイスするように: NodeJS/Foreverアーカイブログ )、ある日後、私のディレクトリは次のようになります:

-rw-r--r--1ルートルート0avril 18 12:00 api_output.log

-rw-r--r--1ルートルート95492avril 18 12:01 api_output.log-20140418

したがって、ローテーションは機能していますが、ログメッセージはapi_output.logではなくapi_output.log-20140418に書き込まれるようになりました。

多分誰かが私を助けることができますか?

14
igor

設定ファイルの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  
}
19
igor

永遠とログファイルの間の生きている流れのせいだと思います。

永久にファイルストリームを使用してファイルをログに記録します。このファイルの名前をlogrotateで変更しました。しかし、ストリームは変更されません。そのため、ログメッセージはapi_output.log-20140418に書き込まれました。

ストリームを変更する場合は、node.jsコードでローテーションするか、パイプラインを使用する必要があります。

0
Satomi Keisuke