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に書き込まれるようになりました。
多分誰かが私を助けることができますか?
設定ファイルの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
}
永遠とログファイルの間の生きている流れのせいだと思います。
永久にファイルストリームを使用してファイルをログに記録します。このファイルの名前をlogrotateで変更しました。しかし、ストリームは変更されません。そのため、ログメッセージはapi_output.log-20140418に書き込まれました。
ストリームを変更する場合は、node.jsコードでローテーションするか、パイプラインを使用する必要があります。