1

ExtendedLog4NetLogger.cs を使用して、実行時にログ ファイルのパスを動的に変更する方法、または LoggingFacilityを使用する方法を理解しようとしています。

これは、次のように log4net を直接使用する場合と似ているはずです。

log4net.GlobalContext.Properties["ログ名"] = ログ名;

次のように log4net 統合を登録すると、どのように ExtendedLogger にアクセスできますか。

container.AddFacility<LoggingFacility>(f => f.UseLog4Net());

更新: 次のコードを使用して、拡張ロガーを登録します

container.AddFacility<LoggingFacility>(LoggerImplementation.ExtendedLog4net).WithConfig(configFile).ToLog(Lo‌gger)); 

ランタイム例外は発生せず、ロガーは null インスタンスではありませんが、グローバル プロパティを使用して作成されたログ ファイルがまったく表示されません。また、アペンダーの構成値を次のように設定します。

<file type="log4net.Util.PatternString" value="%property{LogName}" />

構成ファイルのファイル プロパティをフル パスに設定するだけで機能します。グローバル変数を設定する前に構成が行われているため、機能していないのではないかと思います。

4

2 に答える 2