- PR -

Traceでログをファイルに出力

1
投稿者投稿内容
yoo
会議室デビュー日: 2003/04/03
投稿数: 12
投稿日時: 2003-06-06 16:54
こんにちは。

Traceクラスを使ってファイルにログを出力しようとしています。
ファイル出力のTextWriterTraceListenerを使っていますが、configファイルで
設定をしています。

以下Configファイルの内容
--------------------------
<configuration>
<system.diagnostics>
<switches>
<add name="Level" value="4" />
</switches>
<trace autoflush="true" indentsize="2">
<listeners>
<add name="LogListener"
type="System.Diagnostics.TextWriterTraceListener"
initializeData="AplLog.log"/>
</listeners>
</trace>
</system.diagnostics>
</configuration>
----------------------------

プログラムは以下のとおりです。

Trace.WriteLine("エラーが発生しました");
Trace.Close();

ここで一度Closeしてしまうと他でまた同じようにWriteLineメソッドを呼び出した場合、
「閉じている TextWriter に書き込むことはできません」という例外が発生
してしまいます。確かに、Closeしたのだから当然と言えば当然の例外ですが、
逆に、Closeしないとエラーにはなりませんがファイルをつかんでしまいます。

回避策というべきなのかわかりませんが、Configファイルから<trace>要素の部分
を削除し、プログラム中で
TextWriterTraceListenerインスタンス生成
TraceListenerCollectionへの追加
書き込み
Close()
TraceListenerCollectionから削除
という処理をすればうまくいきます。

Configファイルの設定は残し、かつListenerをCloseしてもエラーにならない方法は
ないのでしょうか?

よろしくお願いいたします。




1

スキルアップ/キャリアアップ(JOB@IT)