logrotate設定
code:/etc/logrotate.d/app
/var/log/foobar/hoge-app/hoge-app.log {
missingok
rotate 7
dateext
dateformat _%Y-%m-%d
compress
create 644 syslog syslog
copytruncate
daily
}
copytruncateはログローテートのタイミングのログが消える可能性がある
copytruncateはその名の通りhoge.log→hoge.log.1とかにコピーしてからhoge.logの中身をトランケート(削除)する
コピーから削除までの間に書き込まれたログは失われる可能性がある
copytruncateでないローテートはファイルリネームを使う
ログファイルのinodeを掴んだままのプロセスがあると下手したらリネームしたログファイルにログが出力され続けたりする?