|
|
|
@ -3,9 +3,16 @@ using LogStudy.TraceLog;
|
|
|
|
|
|
|
|
|
|
Console.WriteLine("======== 跟踪日志学习 ========");
|
|
|
|
|
|
|
|
|
|
UseDefaultListener();
|
|
|
|
|
//UseDefaultListener();
|
|
|
|
|
|
|
|
|
|
//UseCustomListener();
|
|
|
|
|
|
|
|
|
|
//UseCustomListener2();
|
|
|
|
|
|
|
|
|
|
UseSystemListener();
|
|
|
|
|
|
|
|
|
|
Console.ReadLine();
|
|
|
|
|
|
|
|
|
|
UseCustomListener();
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
//使用默认监听器
|
|
|
|
@ -30,6 +37,12 @@ void UseCustomListener()
|
|
|
|
|
source.Listeners.Clear();
|
|
|
|
|
|
|
|
|
|
var customListener = new CustomTraceListener();
|
|
|
|
|
|
|
|
|
|
//查源码得知:Add方法会调用 InitializeListener(listener)方法,
|
|
|
|
|
//在 InitializeListener 中会把 IndentLevel 及 IndentSize 重新设置为 Debug.IndentLevel 和 Debug.IndentSize
|
|
|
|
|
//所以:设置 TraceListener 的 IndentLevel方法有二:
|
|
|
|
|
// 1、在 TraceSource.Listeners.Add() 方法之后设置,这样可以单独设置每一个 Listener
|
|
|
|
|
// 2、在 TraceSource.Listeners.Add() 方法之前,设置 Debug.IndentLevel 和 Debug.IndentSize
|
|
|
|
|
var index = source.Listeners.Add(customListener);
|
|
|
|
|
|
|
|
|
|
//放在 source.Listeners.Add 前面设置IndentLevel,add之后就自动归零,不知道什么原因。
|
|
|
|
@ -41,5 +54,41 @@ void UseCustomListener()
|
|
|
|
|
source.TraceInformation("我是TraceInformation");
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
//使用自定义监听器2
|
|
|
|
|
void UseCustomListener2()
|
|
|
|
|
{
|
|
|
|
|
var source = new TraceSource("ConsoleListenerTraceLog2", SourceLevels.All);
|
|
|
|
|
source.Listeners.Clear();
|
|
|
|
|
|
|
|
|
|
//查源码得知:Add方法会调用 InitializeListener(listener)方法,
|
|
|
|
|
//在 InitializeListener 中会把 IndentLevel 及 IndentSize 重新设置为 Debug.IndentLevel 和 Debug.IndentSize
|
|
|
|
|
//所以:设置 TraceListener 的 IndentLevel方法有二:
|
|
|
|
|
// 1、在 TraceSource.Listeners.Add() 方法之后设置,这样可以单独设置每一个 Listener
|
|
|
|
|
// 2、在 TraceSource.Listeners.Add() 方法之前,设置 Debug.IndentLevel 和 Debug.IndentSize
|
|
|
|
|
|
|
|
|
|
Debug.IndentLevel = 3;
|
|
|
|
|
source.Listeners.Add(new CustomTraceListener());
|
|
|
|
|
|
|
|
|
|
source.TraceInformation("我是TraceInformation");
|
|
|
|
|
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
//使用系统监听器
|
|
|
|
|
void UseSystemListener()
|
|
|
|
|
{
|
|
|
|
|
var source = new TraceSource("System.ListenerTraceLog", SourceLevels.All);
|
|
|
|
|
source.Listeners.Clear();
|
|
|
|
|
|
|
|
|
|
source.Listeners.Add(new ConsoleTraceListener());
|
|
|
|
|
source.Listeners.Add(new DelimitedListTraceListener("Delimited.Trace.Log"));
|
|
|
|
|
source.Listeners.Add(new XmlWriterTraceListener("Xml.Trace.Log"));
|
|
|
|
|
|
|
|
|
|
source.TraceEvent(TraceEventType.Warning,1,"-----------------------------");
|
|
|
|
|
|
|
|
|
|
//确认写入
|
|
|
|
|
source.Flush();
|
|
|
|
|
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|