質問

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

ライセンス: CC-BY-SA帰属
所属していません StackOverflow
scroll top