ASP.NET MVC3 アプリケーションから Log4Net を使用しています。すべて正常に動作しますが、ログ ファイルでアプリケーション プールの ID ではなく現在のユーザー名を確認したいと考えています。これは、使用しているアペンダー構成です。
<log4net>
<appender name="FileAppender" type="log4net.Appender.RollingFileAppender">
<threshold value="ALL" />
<immediateFlush>true</immediateFlush>
<lockingModel type="log4net.Appender.FileAppender+MinimalLock" />
<encoding value="utf-8" />
<file value="C:\Logs\MyLogs.log" />
<appendToFile value="true" />
<rollingStyle value="Date" />
<maxSizeRollBackups value="30" />
<maximumFileSize value="25MB" />
<staticLogFileName value="true" />
<layout type="log4net.Layout.PatternLayout">
<conversionPattern value="[%property{log4net:HostName}] - %username%newline%utcdate - %-5level - %message%newline" />
</layout>
</appender>
<root>
<priority value="ALL" />
<appender-ref ref="FileAppender" />
</root>
</log4net>
したがって、プロパティのように見えます:%username
の値を取得しています:
WindowsIdentity.GetCurrent().Name
必要なものの代わりに:HttpContext.Current.User
カスタム プロパティや追加の log4net 派生クラスを作成せずに、web.config でこれを簡単に解決する方法について何か考えはありますか? 可能であれば、それ以外の場合は、カスタムプロパティがそれと一緒に暮らすことができる唯一の方法であると思います:)ありがとう!