.net core日志
APS.net core 的所有日志都在using System.Diagnostics; 空间下
https://docs.microsoft.com/zh-cn/dotnet/api/system.diagnostics?view=netcore-3.1
一、调试日志
1.
static void Main(string[] args) { //log 参数1日志等级,参数2日志类别,参数3日志信息 Debugger.Log(0,null,"调试日志\n"); Console.ReadKey(); }
2.
通常用的更多的是
Debug.Write("调试日志\n");
3.
使用断言类似打断点的效果,可以传1-3个参数,只在debug模式下有效。
Debug.Assert(false,"message","long message");
4.
带判断的调试,当为true时,输出结果
Debug.WriteLineIf(true, "abc");
二、跟踪日志
TraceSource
1.
//参数1日志名称,参数2要显示的日志类型 var source = new TraceSource("log", SourceLevels.All); //得到所有的日志等级 var eventTypes = (TraceEventType[])Enum.GetValues(typeof(TraceEventType)); int i = 0; //遍历输出 Array.ForEach(eventTypes, it=> source.TraceEvent(it,i++,$"日期等级为 {it}"));
一共10个等级,其中 0行的等级最高,依次下降。.
2.自定义监听器
默认使用的是DefaultTraceListener的监听器,它会显示的vs的输出窗体中
class Program { static void Main(string[] args) { var source = new TraceSource("log", SourceLevels.All); //添加一个监听器 source.Listeners.Add(new LogListener()); var eventTypes = (TraceEventType[])Enum.GetValues(typeof(TraceEventType)); int i = 0; Array.ForEach(eventTypes, it=> source.TraceEvent(it,i++,$"日期等级为 {it}")); } class LogListener : TraceListener { public override void Write(string message) { Console.Write(message); } public override void WriteLine(string message) { Console.WriteLine(message); } } }
这样就输出到了控制台上
三、事件日志
EventSource
四、诊断日志
DiagnosticSource