LoginSignup
54

More than 5 years have passed since last update.

ログローテーションの設定方法

Posted at

いきさつ

アプリのログがローテーションできていない。。。でも、ソースを触りたくない。。。
ということで、ひとまず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」のファイル名で毎日ローテションされています。

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
54