using System.Diagnostics; namespace LogStudy.TraceLog.Next { internal class Program { static void Main(string[] args) { Console.WriteLine("跟踪日志学习-进阶项目"); DefaultTraceSource(); DefaultTraceSourceWithLog(); DefaultTraceSourceWithoutSourceLevels(); Console.WriteLine("按回车键,退出程序!"); Console.ReadLine(); } static void Test() { WeakReference s = new WeakReference(null); } /// /// 使用默认 SourceLevels 参数的 TraceSource /// 因为 SourceLevels 默认为Off,所以使用默认不传SourceLevels参数的构建函数生成的 TraceSource 是不会输出任何跟踪信息的。 /// static void DefaultTraceSourceWithoutSourceLevels() { TraceSource defaultTraceSource = new TraceSource("Andy-DefaultTraceSourceWithoutSourceLevels"); var preMessaage = defaultTraceSource.Name + ": "; defaultTraceSource.TraceData(TraceEventType.Verbose, 1, $"{preMessaage}================"); defaultTraceSource.TraceEvent(TraceEventType.Error, 1, $"{preMessaage}---------------"); defaultTraceSource.TraceInformation($"{preMessaage}++++++++++++++++++++++++++++++++++++++++++++++"); defaultTraceSource.TraceTransfer(2, $"{preMessaage}************", Guid.NewGuid()); //强制输出 defaultTraceSource.Flush(); } /// /// 默认 TraceSource /// static void DefaultTraceSource() { TraceSource defaultTraceSource = new TraceSource("Andy-DefaultTraceSource", SourceLevels.All); var preMessaage = defaultTraceSource.Name + ": "; defaultTraceSource.TraceData(TraceEventType.Verbose, 1, $"{preMessaage}================"); defaultTraceSource.TraceEvent(TraceEventType.Error, 1, $"{preMessaage}---------------"); defaultTraceSource.TraceInformation($"{preMessaage}++++++++++++++++++++++++++++++++++++++++++++++"); defaultTraceSource.TraceTransfer(2, $"{preMessaage}************", Guid.NewGuid()); //强制输出 defaultTraceSource.Flush(); } /// /// 默认跟踪源:内容输出到日志文件 /// static void DefaultTraceSourceWithLog() { TraceSource defaultTraceSource = new TraceSource("Andy-DefaultTraceSourceWithLog", SourceLevels.All); defaultTraceSource.Listeners.Clear(); defaultTraceSource.Listeners.Add(new DefaultTraceListener() { LogFileName = "DefaultTraceListener.log" }); var preMessaage = defaultTraceSource.Name+": "; defaultTraceSource.TraceData(TraceEventType.Verbose, 1, $"{ preMessaage }================"); defaultTraceSource.TraceEvent(TraceEventType.Error, 1, $"{ preMessaage }---------------"); defaultTraceSource.TraceInformation($"{ preMessaage }++++++++++++++++++++++++++++++++++++++++++++++"); defaultTraceSource.TraceTransfer(2, $"{ preMessaage }************", Guid.NewGuid()); //强制输出 defaultTraceSource.Flush(); } } }