コード内に特定の名前でトレース ソースを作成した後、app.config のセクションを使用して、実行時にリスナーをアタッチしたいと考えています。
ここに私のapp.configがあります:
<system.diagnostics>
<trace autoflush="true"/>
<sources>
<source name="myTraceSource"
switchName="mySwitch"
switchType="System.Diagnostics.SourceSwitch" >
<listeners>
<clear/>
<add name="textwriterListener"
type="System.Diagnostics.TextWriterTraceListener"
initializeData="c:\dev\mylog.txt"
traceOutputOptions="ProcessId, DateTime, Callstack" />
</listeners>
</source>
</sources>
<switches>
<add name="mySwitch" value="Verbose" />
</switches>
</system.diagnostics>
コードでメッセージが生成されていることがわかります
this.TraceSource.TraceEvent(TraceEventType.Verbose, 0, p_message);
しかし、ログ ファイルには何も出力されません (作成さえされません)。ブレークポイントを設定して を見るとthis.TraceSource.Listeners
、空です。
ここで私が間違っていること、またはこの種のデバッグに関するヒントはありますか? このような既存のソースに新しいリスナーをアタッチすることさえ可能ですか?
また、次のことを試しましたが、成功しませんでした。
<system.diagnostics>
<trace autoflush="true" indentsize="4">
<listeners>
<add name="TextListener"
type="System.Diagnostics.TextWriterTraceListener"
initializeData="c:\dev\mylog.txt" />
<remove name="Default" />
</listeners>
</trace>
</system.diagnostics>