ローリングLog4Netログファイルのカスタムファイル名?
質問
ASP .Netアプリケーションがあり、Log4Netを使用してアプリ内の詳細をログに記録します。そこには新しいものはありません。また、ローリングログファイル名は通常の形式です:
rolling-log.txt
rolling-log.txt.1
rolling-log.txt.2 etc.
アプリケーションの各ユーザーがログファイルに追加するため、特定のユーザーのケースではログファイルを読みにくい場合があるため、設定ファイルを何らかの方法で変更して、ユーザーのログの詳細を個別に記録し、それぞれに書き込みます特定のファイル、例えば
<applicationId>rolling-log.txt
<applicationId>rolling-log.txt.1
<applicationId>rolling-log.txt.2
etc.
ここで、5桁の数字で構成される各ユーザーの一意のアプリケーションIDです。
12345rolling-log.txt
可能な場合、これを実装する最良の方法に関するアイデアはありますか?
乾杯
ブレット
解決
log4netコンテキストプロパティを検索...
コード内:
log4net.GlobalContext.Properties["id"] = "12345";
then
log4net.Config.XmlConfigurator.ConfigureAndWatch(new FileInfo("configPath"));
log4net構成ファイル内:
<file type="log4net.Util.PatternString"
value="%property{id}rolling-log.txt" />
他のヒント
<file type="log4net.Util.PatternString">
<conversionPattern value="C:\Logs\log-%date{ yyyy.MM.dd.HH.mm.ss}-[%processid].log" />
</file>
Log4Net構成ファイルは、環境変数(例:USERNAME)と、必要なものを提供するカスタマイズ可能なパターンをサポートしていると思います。
「パターンベースの構成のパターン文字列」を見てください。 Log4Net V1.2.10リリースノート。
ユーザーごとのログファイルは考えられませんが、log4netとアプリケーションの間に、ログに書き込む前にユーザーIDを付加するカスタムレイヤーを書くことができます。
XmlLayoutBaseから継承することにより、カスタムレイアウトを作成できます。
rollingfileappenderと動的ファイル名のように、RollingPatternFileAppenderをチェックアウトします。 http://mysite.verizon.net/vze14bhji
所属していません StackOverflow