2

Microsoft Logging Application Block (バージョン 5 ベータ 2) を使用しており、ログ ファイルのファイル名を年月日に動的に設定しようとしています (そして、毎日新しいログ ファイルを書き込んでいます)。ただし、実行時には、ロガーは %date%、%time%、%cd% などの動的環境変数を無視します。ファイル名に静的環境変数 (%username% など) を追加できますが、動的環境変数は追加できません。ローリング フラット ファイル トレース リスナーを取得して、ログ ファイル名に日付を動的に設定する方法を知っている人はいますか?

(これは、ファイル名を次のように設定していたものです: Log_%date%.log)

4

2 に答える 2

6

@Robertc、この質問がマークされていることは知っていますが、次のプロジェクトに使用できるトリックがあると思います:独自の環境変数を使用してください!

たとえば、Logging Block を呼び出す前に

Environment.SetEnvironmentVariable("MYDATE", "15/07/2010"); // << change the hardcoded date to get from DateTime
Debug.WriteLine (Environment.ExpandEnvironmentVariables(@"c:\Log\Log_%MYDATE%.log"));

app.config の適切なローリング フラット ファイル トレース リスナー

FileName=Log_%MYDATE%.log

注: このトリックは、アプリケーションを毎日再起動する場合にのみ機能します。

于 2010-07-14T06:36:00.980 に答える
2

Logging Application Block をあきらめて、log4net に切り替えました。Log4net では、web.config 設定でログの名前を今日の日付に設定できます。ポリシー インジェクション アプリケーション ブロックで log4net を動作させる方法を示すコード プロジェクトに関する記事をここに書きました

于 2010-05-03T19:50:25.680 に答える