我正在使用TraceSource來記錄ASP.Net應用程序。 要更改輸出格式,我需要創建自己的TraceListener而不是TextwriterListener。TraceSource:自定義TraceListener不起作用
<trace>
<listeners>
<remove name="Default" />
<add name="Default"
type="WebTracing.CustomTraceListener, WebTracing" initializeData="Weblog.txt" traceOutputOptions="None"/>
</listeners>
</trace>
public class CustomTraceListener : TextWriterTraceListener
{
public override void Write(string message)
{
if (NeedIndent)
{
WriteIndent();
}
message = //customize format
base.Write(message);
}
public override void WriteLine(string message)
{
if (NeedIndent)
{
WriteIndent();
}
message = //customize format
base.WriteLine(message);
NeedIndent = true;
}
}
//調用
CustomTraceListener obj = new CustomTraceListener();
obj.TraceEvent(null, "This is a critical message", TraceEventType.Critical, 0);
(or)
obj.Write("This is a critical message");
obj.Close();
沒有錯誤。沒有數據打印在輸出文件中。 我是ASP.Net的新手,任何人都可以幫助我解決這個問題。
更新
我嘗試另一種方式。但是會導致配置錯誤。
<trace autoflush="true" />
<sources>
<source name="Trace" switchName="mySwitch" switchType="System.Diagnostics.SourceSwitch">
<listeners>
<remove name="Default" />
<add name="Default"
type="WebTracing.CustomTraceListener, WebTracing" initializeData="Weblog.txt" traceOutputOptions="None"/>
</listeners>
</source>
</sources>
<switches>
<add name="mySwitch" value="All"/>
</switches>
TraceSource obj = new TraceSource("Trace");
obj.TraceEvent(TraceEventType.Critical,0,"This is a critical message");
obj.Close();
異常詳細信息:System.Configuration.ConfigurationErrorsException:無法創建WebTracing.CustomTraceListener,WebTracing。
注:正常TextWriterListener工作正常。但我需要自定義偵聽器來格式化輸出字符串。
你的任何機會解決呢? – Mr767267 2016-11-27 10:30:19