您需要創建EmailTraceListener,然後將其添加到您的類別的TraceSources集合中。
在這個例子中,我有一個基本跟蹤監聽器指向一個平面文件。
<add fileName="trace.log" header="----------------------------------------"
footer="----------------------------------------" formatter="Text Formatter"
listenerDataType="Microsoft.Practices.EnterpriseLibrary.Logging.Configuration.FlatFileTraceListenerData, Microsoft.Practices.EnterpriseLibrary.Logging, Version=4.1.0.0, Culture=neutral, PublicKeyToken=31bf3856ad364e35"
traceOutputOptions="None" filter="All" type="Microsoft.Practices.EnterpriseLibrary.Logging.TraceListeners.FlatFileTraceListener, Microsoft.Practices.EnterpriseLibrary.Logging, Version=4.1.0.0, Culture=neutral, PublicKeyToken=31bf3856ad364e35"
name="FlatFile TraceListener" />
與類別源,如下所示:
<categorySources>
<add switchValue="All" name="General">
<listeners>
<add name="FlatFile TraceListener" />
</listeners>
</add>
</categorySources>
然後使用代碼我能夠到EmailTraceListener添加到收藏TraceSources。
var emailTraceListener = new EmailTraceListener("[email protected]", "[email protected]", "Food", "Bar",
"smtp.foo.bar") {Name = "EmailTraceListener"};
LogSource logSource;
Logger.Writer.TraceSources.TryGetValue("General", out logSource);
logSource.Listeners.Add(emailTraceListener);
var logEntry = new LogEntry {Message = "Test"};
Logger.Write(logEntry);
運行這個例子中,然後將生產與LogEntry信息的電子郵件,以及在日誌文件trace.log的一個條目
完美的,正是我所期待的。謝謝 – 2009-11-20 20:10:07
因此,添加監聽器只會在運行時添加它們,對吧?對於ASP.NET Web應用程序,它是否適用於每個用戶會話的整個持續時間? – 2013-12-17 15:59:08