私はノードアプリケーションを実行するために forever を使用しています。永遠に始めるときは、ログを書き込む場所を指定します。また、ログに追加するように指定します。ここでの問題は、私のログが数か月の間に制御不能になることです。
ある間隔でログをアーカイブ/ロールする方法はありますか?つまり、ログファイルにあるものを別のファイル(つまり、server-2013-3-5.log)に毎日ロール/アーカイブします。そうすれば、必要に応じて古いログファイルを削除/削除できます。
私はロガーにWinstonを使用することを検討し始めたばかりですが、そこで役立つものは何も見つかりませんでした。
何か案は?
永遠にそれ自体はログローテーションをサポートしておらず、ログローテーションはまだ 保留中の機能リクエスト Winstonの場合です。
logrotate
を使用できます。これは、ほとんどのLinuxディストリビューションに含まれており、システムログファイルのローテーションに使用されるほか、Apacheなどの他のソフトウェアでも使用されます。
/etc/logrotate.d/
にファイルを追加します
/path/to/server.log {
daily # how often to rotate
rotate 10 # max num of log files to keep
missingok # don't panic if the log file doesn't exist
notifempty # ignore empty files
compress # compress rotated log file with gzip
sharedscripts # postrotate script (if any) will be run only once at the end, not once for each rotated log
copytruncate # needed for forever to work properly
dateext # adds date to filename
dateformat %Y-%m-%d.
}
その他のlogrotate
の例 を参照してください。