From 73b36697e44b8b92166bdd357e6ad400a52e4667 Mon Sep 17 00:00:00 2001 From: bicijinlian Date: Thu, 3 Nov 2022 09:54:39 +0800 Subject: [PATCH] =?UTF-8?q?=E7=B3=BB=E7=BB=9F=E8=B7=9F=E8=B8=AA=E7=9B=91?= =?UTF-8?q?=E5=90=AC=E5=99=A8?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- LogStudy.TraceLog/Program.cs | 53 ++++++++++++++++++++++++++++++++++-- 1 file changed, 51 insertions(+), 2 deletions(-) diff --git a/LogStudy.TraceLog/Program.cs b/LogStudy.TraceLog/Program.cs index d16e9bd..32c96f2 100644 --- a/LogStudy.TraceLog/Program.cs +++ b/LogStudy.TraceLog/Program.cs @@ -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(); + +} +