すでに書き込んだデータの変更について心配するのではなく、現在のログファイルが特定のサイズに達したとき、またはスケジュールに基づいて(1時間ごとに)、特定の時点で新しいログファイルを開始するという昔ながらの伝統に従います。毎日またはその他)。
現在のログファイルの名前をからxyzzy.log
に変更してからxxyyz-YYYYMMDDHHMMSS.log
、の新しいコピーを開始しますxyzzy.log
。
これにより、ログの完全な監査を維持することとディスク領域を維持することの間の適切なトレードオフも得られます。30日以上経過したログファイルを削除する手順を設定したり、集計サイズをあるしきい値未満に維持したり、古いログをセカンダリストレージ領域に隠したりすることもできます。
これらの手順は、プログラムの一部である必要はありません。以前は、古いログファイルをクリーンアップするスケジュールされたタスクがありました。このタスクは、スクリプトが配置されているディレクトリ以外は、プログラム自体とは何も共有していませんでした。住んでいた。
これは、サードパーティ製品を統合する以外の方法でおそらく最も簡単な方法です(常に可能であるとは限りません)。ログファイルはほとんどの場合、ユーザーではなくプログラマー向けであるため、命名基準はそれほど面倒ではありません。 。
私が過去に(確かにLinuxで)使用した非常に単純な解決策は、実際には名前の変更についてまったく心配しないことです。ログ機能で現在の日付を使用してファイルを開き、日付を覚えておくだけです。その後、ログ関数を呼び出すたびに、日付が変わっていないか確認し、変更されている場合は、その後のログ記録のために新しいログファイルを開きます。これにより、プログラムによる労力をほとんどかけずに、1日に1つのログファイルが得られます。
find -mtime
それから私はちょうど特定の年齢以上のものを削除するために使用するスクリプトを持っていました。