Asp.Net Web アプリケーションで log4net (nLog を置き換える) を使用しています。nLog には、ユーザーごとにログ ファイルを作成できる便利な機能がありました。これは、ログ ステートメントの整理と検索に役立ちます。
log4netでこれを行う方法について誰かアイデアがありますか?
ファイルにログを記録する代わりに、データベース テーブルにログを記録することを検討し、ログ データの一部にユーザー ID を含めます。このようにして、ユーザー (またはユーザー) に基づいてテーブルに対して選択を行い、そのデータのみを表示できます。おそらく、セッション ID もログに記録して、セッション ベースのクエリを簡単にする必要があります。
global.asaxファイルのsession_startイベントハンドラーでプログラムによって新しいRollingFileAppenderをインスタンス化します。このようにして、たとえばファイルに[username] myapp.logという名前を付けるなど、ユーザーごとに1つの異なるファイルを取得できます。私は知っています、それは古い質問ですが、それは誰かにとって常に便利かもしれません:)
1つの方法は、RollingFileAppenderから派生した独自のアペンダーを作成することです。
単一のファイルにログを記録し、LogExpertなどの優れたログ表示プログラムを使用して、特定のユーザーのセッションを表示したいときにユーザー名などでフィルター処理します。