19

私はノードアプリケーションを実行するために永遠に使用しています。永遠に始めるときは、ログを書き込む場所を指定します。また、ログに追加するように指定します。ここでの問題は、私のログが数か月の間に制御不能になることです。

ある間隔でログをアーカイブ/ロールする方法はありますか?つまり、ログファイルにあるものを別のファイル(つまりserver-2013-3-5.log)に毎日ロール/アーカイブする方法はありますか?そうすれば、必要に応じて古いログファイルを削除/削除できます。

私はロガーにWinstonを使用することを検討し始めたばかりですが、そこで役立つものは何も見つかりませんでした。

何か案は?

4

1 に答える 1

35

永遠にそれ自体はログローテーションをサポートしておらず、ログローテーションはまだ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を参照してください。

于 2013-03-05T19:18:52.577 に答える