.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

 

posted @ 2020-06-17 14:50  富坚老贼  阅读(315)  评论(0编辑  收藏  举报