練習 2:建立與使用自訂 TraceListener
建立自訂 TraceListener 將日誌輸出至主控台,並加入至 EnoughPI 應用程式。
開啟 EnoughPI.sln,預設路徑 C:\Program Files\Microsoft Enterprise Library January 2006\labs\cs\Logging\exercises\ex02\begin,編譯。
EnoughPI.Logging 加入參考:Microsoft.Practices.EnterpriseLibrary.Common.dll
Microsoft.Practices.EnterpriseLibrary.Logging.dll

TraceListeners\ConsoleTraceListener.cs,加入命名空間:using Microsoft.Practices.EnterpriseLibrary.Common.Configuration;
using Microsoft.Practices.EnterpriseLibrary.Logging;
using Microsoft.Practices.EnterpriseLibrary.Logging.Configuration;
using Microsoft.Practices.EnterpriseLibrary.Logging.Formatters;
using Microsoft.Practices.EnterpriseLibrary.Logging.TraceListeners;
ConsoleTraceListener 類別加入代碼:[ConfigurationElementType(typeof(CustomTraceListenerData))]
public class ConsoleTraceListener : CustomTraceListener
{
public ConsoleTraceListener() : base() { }
public override void TraceData(TraceEventCache eventCache, string source, TraceEventType eventType, int id, object data)
{
if (data is LogEntry && this.Formatter != null)
this.WriteLine(this.Formatter.Format(data as LogEntry));
else
this.WriteLine(data.ToString());
}
public override void Write(string message)
{
Console.Write(message);
}
public override void WriteLine(string message)
{
Console.WriteLine((string)this.Attributes["delimiter"]);
Console.WriteLine(message);
}
}
繼承 CustomTraceListener,覆寫 Write、WriteLine 抽象方法,並覆寫 TraceData 支援格式化。擁有 delimiter 參數作為 Listener 配置一部分。