ローテートするファイルを監視する
実装により、ローテートされる方法が異なるので、それぞれに対する対処が必要。
基本的には以下のようなパターンがある。
書き込む側
ずっと同じファイル名で残る場合(ローテートなし)
ファイルがコピーされて、元のファイルが truncate される場合
ファイルがリネームされて、元のファイル名で新しくファイルが作られる場合
新しいファイル名(連番や日時付き)で作られて、元のファイルはそのまま放置される場合
読み出す側
ファイルをオープンしたままにする場合
ストリーム処理をする場合は基本的にこちらになる。
その都度ファイルをオープンする場合
あまり望ましくない
背景
オープンされたままのファイルがリネームされた場合、(多くの実装では)そのままアクセスできる。
新しいファイル名が連番などで付く場合は、そのルールをあらかじめ知っている必要がある。