#いきさつ
アプリのログがローテーションできていない。。。でも、ソースを触りたくない。。。
ということで、ひとまずLinuxのlogrotateで対処することにしました。
#設定ファイル
/etc/logrotate.conf に設定ファイルがあります。
ただし、個別の設定は/etc/logrotate.d/ ディレクトリで行います。
参考になる設定ファイルがあったのでコピーして編集します。
###ファイルをコピー
わかりやすい名前をつけた方が良いです。(システム名など)
sudo cp /etc/logrotate.d/file /etc/logrotate.d/new-file
###ファイルを編集
必要に応じた設定に編集します
sudo vim /etc/logrotate.d/new-file
設定ファイル内容です。
1行目はローテションを設定するファイルです。
/var/log/system-name/info.log {
daily
rotate 90
missingok
notifempty
copytruncate
dateext
dateformat %Y-%m-%d
}
オプション | 説明 |
---|---|
daily | 日ごとに実行 |
rotate 90 | ローテーションする世代数は90 |
missingok | 指定のログファイルがない場合もエラーを出さない |
notifempty | ファイルが空の場合はローテーションしない |
copytruncate | ログファイルのコピー後に、元ファイルの中身を削除する |
dateext | ローテーションしたファイルの末尾に日付をつける |
dateformat %Y-%m-%d | ファイル末尾の日付フォーマット |
###実行してみる(動作確認)
sudo /usr/sbin/logrotate -f /etc/logrotate.d/new-file
末尾に日付のついたファイルが作成され、元のファイルはサイズが0となりました。
###設定反映
sudo /usr/sbin/logrotate /etc/logrotate.conf
1週間経過しましたが、「info.logyyyy-mm-dd」のファイル名で毎日ローテションされています。