0

Mac の GTMLogger 用の Google ツールボックスを使用して、作業中のアプリでファイルにログを記録しています。

ファイルが十分に大きくなったときにログ ファイルのロールオーバーを行う方法を決定しようとしています。

理想的には、ログ ファイルが一度に最大 11 個のログ ファイルで 1 MB に達したときの log4net の即時ロールオーバーのようなものが欲しいのですが、これを行うための組み込みの方法が見当たらず、それを追加しようとするかどうか疑問に思っています価値があるよりも面倒です。

私が考えることができるやや単純なオプションは、アプリの起動時にこのチェックを行い、特定のサイズを超えているログをロールオーバーすることです。もちろん、これの欠点は、誰かがアプリを 1 ~ 2 週間実行したままにした場合 (アプリの一部が launchd デーモンであるため、めったに再起動しない人にとっては確実に可能性があります)、 -この期間中に蓄積された些細なサイズ (有効なログレベルによって異なります)。

ここで私の最良の選択肢は何ですか?

4

1 に答える 1

1

起動時だけのチェックでは十分でないのではないかと心配しています。そのため、起動時にランループにタイマーをスローして、ログ チェックをすぐにトリガーし、その後は 1 日または 2 日に 1 回トリガーします。一度に最大 1 MiB を使用することをターゲットにしている場合、しばらくの間制限を超えたとしても、それほど問題にならない可能性があります。

また、log4net がこの機能をどのように実装しているかAppend()を確認することもできます。それぞれをフックして、サイズ/日付の制約が満たされていることを確認し、必要に応じてログに記録されるファイルを調整するだけです。詳細については、RollingFileAppenderソース コードを参照してください。から始めてAdjustFileBeforeAppend()、チェックアウトしRollOverSize()ます。Apache です: ソースを使用してください!

于 2009-09-13T02:43:13.273 に答える