diff --git a/LogStudy.EventLog/CustomSource.cs b/LogStudy.EventLog/CustomSource.cs
new file mode 100644
index 0000000..eca28be
--- /dev/null
+++ b/LogStudy.EventLog/CustomSource.cs
@@ -0,0 +1,17 @@
+using System;
+using System.Collections.Generic;
+using System.Diagnostics.Tracing;
+using System.Linq;
+using System.Text;
+using System.Threading.Tasks;
+
+namespace LogStudy.EventLog
+{
+ public sealed class CustomSource : EventSource
+ {
+ public void OnCommandExecute()
+ {
+
+ }
+ }
+}
diff --git a/LogStudy.TraceLog/CustomTraceListener.cs b/LogStudy.TraceLog/CustomTraceListener.cs
index c98b14e..55381d9 100644
--- a/LogStudy.TraceLog/CustomTraceListener.cs
+++ b/LogStudy.TraceLog/CustomTraceListener.cs
@@ -7,16 +7,51 @@ using System.Threading.Tasks;
namespace LogStudy.TraceLog
{
+ ///
+ /// 自定义跟踪监听器
+ ///
public class CustomTraceListener : TraceListener
{
+ ///
+ /// 因为重写了Write方法:给进什么的,需要自行处理。否则缩进等设置不起作用
+ ///
+ ///
public override void Write(string? message)
{
- Console.Write(message);
+ if (message == null || message?.Length == 0)
+ {
+ return;
+ }
+
+ //处理缩进
+ var preText = string.Empty;
+ if (base.NeedIndent)
+ {
+ preText += new string(' ', base.IndentLevel * base.IndentSize);
+ }
+
+ Console.Write($"{preText}{message}");
}
+ ///
+ /// 因为重写了Write方法:给进什么的,需要自行处理。否则缩进等设置不起作用
+ ///
+ ///
public override void WriteLine(string? message)
{
- Console.WriteLine(message);
+ if (message == null || message?.Length == 0)
+ {
+ return;
+ }
+
+ //处理缩进
+ var preText = string.Empty;
+ if (base.NeedIndent)
+ {
+ preText += new string(' ', IndentLevel * IndentSize);
+ }
+
+ Console.WriteLine($"{preText}{message}");
}
}
}
diff --git a/LogStudy.TraceLog/Program.cs b/LogStudy.TraceLog/Program.cs
index 040e011..d16e9bd 100644
--- a/LogStudy.TraceLog/Program.cs
+++ b/LogStudy.TraceLog/Program.cs
@@ -3,10 +3,11 @@ using LogStudy.TraceLog;
Console.WriteLine("======== 跟踪日志学习 ========");
-//UseDefaultListener();
+UseDefaultListener();
UseCustomListener();
+
//使用默认监听器
void UseDefaultListener()
{
@@ -14,6 +15,8 @@ void UseDefaultListener()
var eventTypes = (TraceEventType[])Enum.GetValues(typeof(TraceEventType));
var eventId = 1;
+ source.Listeners[0].IndentLevel = 1;
+
Array.ForEach(eventTypes, it =>
{
source.TraceEvent(it, eventId++, $"这是一个 {eventTypes} 跟踪日志信息");
@@ -25,16 +28,17 @@ void UseCustomListener()
{
var source = new TraceSource("ConsoleListenerTraceLog", SourceLevels.All);
source.Listeners.Clear();
- source.Listeners.Add(new DefaultTraceListener() { LogFileName="DefaultListenerTrace.log"});
- source.Listeners.Add(new CustomTraceListener() { IndentSize=8,IndentLevel=3}) ;
- var eventTypes = (TraceEventType[])Enum.GetValues(typeof(TraceEventType));
- var eventId = 1;
+ var customListener = new CustomTraceListener();
+ var index = source.Listeners.Add(customListener);
- Array.ForEach(eventTypes, it =>
- {
- source.TraceEvent(it, eventId++, $"这是一个 {it} 跟踪日志信息");
- });
+ //放在 source.Listeners.Add 前面设置IndentLevel,add之后就自动归零,不知道什么原因。
+ customListener.IndentLevel = 1;
+ //或者
+ //source.Listeners[index].IndentLevel = 1;
+
+ source.TraceEvent(TraceEventType.Error, 1, $"这是一个 {TraceEventType.Error} 跟踪日志信息");
+ source.TraceInformation("我是TraceInformation");
}