2009-07-15 11 views
7

次のリスナーは、Trace.WriteLineが呼び出されたときにイベントエントリを作成します。ソースが存在しない場合は、デフォルトのログチャネルである「アプリケーション」を作成します。私は別のデフォルトのログチャネルを指定したいが、45分を検索した後、私は解決策を見つけられないようだ。何か案は?EventLogTraceListenerを特定のログに作成するように指示する方法

<configuration> 
    <system.diagnostics> 
    <trace autoflush="false" indentsize="4"> 
     <listeners> 
     <add name="myListener"    
      type="System.Diagnostics.EventLogTraceListener" 
      initializeData="Source">   
     </add> 
     </listeners> 
    </trace> 
    </system.diagnostics> 
</configuration> 

答えて

3

あなたが設定でできるかどうか不安です。

EventLogTraceListenerはコンストラクタ内のパラメータとして別のイベントログを受け入れますが、残念なことに、クラスは密閉されているため、単純にクラスから派生してコンストラクターに別の値を渡すことはできません。

あなたはこのアプローチに従うことができ、独自のクラスを構築することはできますが(かなり簡単です)。そしてあなたの設定でそのタイプを参照してください。 http://weblogs.asp.net/psteele/archive/2006/02/23/438936.aspx

-1

あなたはこのブログの記事で、このための解決策を見つけることができます。

http://weblogs.asp.net/psteele/438936

それは本当に作品!

+1

あなたはあなたの答えポストに不可欠な部品を置き、参照としてリンクを追加する必要があります。 –

0

リスナーをコードの最初の行に置き換えることができます。それはまだベースの構成ですので

Trace.Listeners["MyListener"].Attributes["EventLog"] = ConfigurationManager.AppSettings["MyCustomEventLogName"]; 

値は、設定ファイルの<appSettings>セクションに保存することができます。

<appSettings> 
    <add key="MyCustomEventLogName" value="CustomEventLogName" /> 
</appSettings> 
関連する問題