2016-09-01 5 views
2

私は領域を持つASP MVCプロジェクトを持っており、例外をデータベースに記録する必要があります。しかし、私は問題があります。私はログ例外を各エリアからデータベース内の独自のテーブルに書き込む必要があります。 CommandTextがすべての領域でDataTargetsに設定されていると考えていますが、かなり醜いようです。もう少し素晴らしい方法は、アプリケーションの開始時にすべての領域を取得し、一部の工場でターゲットを構築することです。NLog。異なるテーブルにログを書き込む

誰かがこの問題に関するアイデアやベストプラクティスを持っていますか?

答えて

3

あなたができるように、データベース・ターゲットのCommandTextプロパティは、レイアウトです:

<target xsi:type="Database" 
     name="db" 
     commandText="insert into ${event-properties:tablename} ... "> 

と流暢なスタイル(NLog.Fluent名前空間)を使用して:

logger.Info().Message("this is a message").Property("tablename", "table1").Write(); 

あなたはまた、より多くを使用することができますGDC、MDCなどのグローバルコンテキスト。NLog Wiki

関連する問題