|
|
|
@ -8,17 +8,29 @@ namespace LogStudy.TraceLog.Next
|
|
|
|
|
{
|
|
|
|
|
Console.WriteLine("跟踪日志学习-进阶项目");
|
|
|
|
|
|
|
|
|
|
Test();
|
|
|
|
|
|
|
|
|
|
DefaultTraceSource();
|
|
|
|
|
DefaultTraceSourceWithLog();
|
|
|
|
|
DefaultTraceSourceWithoutSourceLevels();
|
|
|
|
|
|
|
|
|
|
UseDelimitedTraceListener();
|
|
|
|
|
|
|
|
|
|
Console.WriteLine("按回车键,退出程序!");
|
|
|
|
|
Console.ReadLine();
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
static void Test()
|
|
|
|
|
{
|
|
|
|
|
WeakReference s = new WeakReference(null);
|
|
|
|
|
TraceSource traceSource = new TraceSource("Test",SourceLevels.All);
|
|
|
|
|
traceSource.Listeners.Add(new ConsoleTraceListener());
|
|
|
|
|
|
|
|
|
|
var preMessaage = traceSource.Name + ": ";
|
|
|
|
|
|
|
|
|
|
traceSource.TraceData(TraceEventType.Verbose, 1, $"{preMessaage}================");
|
|
|
|
|
traceSource.TraceEvent(TraceEventType.Error, 1, $"{preMessaage}---------------");
|
|
|
|
|
traceSource.TraceInformation($"{preMessaage}++++++++++++++++++++++++++++++++++++++++++++++");
|
|
|
|
|
traceSource.TraceTransfer(2, $"{preMessaage}************", Guid.NewGuid());
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
/// <summary>
|
|
|
|
@ -78,5 +90,72 @@ namespace LogStudy.TraceLog.Next
|
|
|
|
|
//强制输出
|
|
|
|
|
defaultTraceSource.Flush();
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
/// <summary>
|
|
|
|
|
/// 使用默认TraceListener
|
|
|
|
|
/// </summary>
|
|
|
|
|
static void UseDefaultTraceListener()
|
|
|
|
|
{
|
|
|
|
|
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
/// <summary>
|
|
|
|
|
/// 使用 TextWriterTraceListener
|
|
|
|
|
/// </summary>
|
|
|
|
|
static void UseTextWriterTraceListener()
|
|
|
|
|
{
|
|
|
|
|
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
/// <summary>
|
|
|
|
|
/// 使用 ConsoleTraceListener
|
|
|
|
|
/// </summary>
|
|
|
|
|
static void UseConsoleTraceListener()
|
|
|
|
|
{
|
|
|
|
|
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
/// <summary>
|
|
|
|
|
/// 使用 DelimitedTraceListener
|
|
|
|
|
/// </summary>
|
|
|
|
|
static void UseDelimitedTraceListener()
|
|
|
|
|
{
|
|
|
|
|
var listener = new DelimitedListTraceListener("trace.csv")
|
|
|
|
|
{
|
|
|
|
|
//控制输出内容
|
|
|
|
|
TraceOutputOptions = TraceOptions.LogicalOperationStack|TraceOptions.DateTime|TraceOptions.Timestamp|TraceOptions.ProcessId|TraceOptions.ThreadId|TraceOptions.Callstack,
|
|
|
|
|
Delimiter= ",",
|
|
|
|
|
};
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
TraceSource traceSource = new TraceSource("UseDelimitedTraceListener", SourceLevels.All);
|
|
|
|
|
var listenerIndex = traceSource.Listeners.Add(listener);
|
|
|
|
|
traceSource.Listeners[listenerIndex].IndentLevel= 1;
|
|
|
|
|
|
|
|
|
|
var preMessaage = traceSource.Name + ": ";
|
|
|
|
|
|
|
|
|
|
traceSource.TraceData(TraceEventType.Verbose, 1, $"{preMessaage}================");
|
|
|
|
|
traceSource.TraceEvent(TraceEventType.Error, 1, $"{preMessaage}---------------");
|
|
|
|
|
traceSource.TraceInformation($"{preMessaage}++++++++++++++++++++++++++++++++++++++++++++++");
|
|
|
|
|
traceSource.TraceTransfer(2, $"{preMessaage}************", Guid.NewGuid());
|
|
|
|
|
|
|
|
|
|
traceSource.Flush();
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
/// <summary>
|
|
|
|
|
/// 使用 XmlTraceListener
|
|
|
|
|
/// </summary>
|
|
|
|
|
static void UseXmlTraceListener()
|
|
|
|
|
{
|
|
|
|
|
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
/// <summary>
|
|
|
|
|
/// 使用静态 Trace 类
|
|
|
|
|
/// </summary>
|
|
|
|
|
static void UseTarce()
|
|
|
|
|
{
|
|
|
|
|
|
|
|
|
|
}
|
|
|
|
|
}
|
|
|
|
|
}
|