zoukankan      html  css  js  c++  java
  • netcore3.0 Logging 日志系统(三)

    上篇介绍了netcore里面的几个日志提供器

    我们看下如何简单的使用:

    var services = new ServiceCollection();
                services.AddLogging(builder => { builder.AddConsole(); });
                var provider = services.BuildServiceProvider();
    
                var logger = provider.GetService<ILogger<Program>>();
                logger.LogInformation("test");
                Console.Read();

    我们也可以自己扩展:

    public class MyLogger : ILogger
        {
            public void Log<TState>(LogLevel logLevel, EventId eventId, TState state, Exception exception, Func<TState, Exception, string> formatter)
            {
                Console.WriteLine(formatter(state, exception));
            }
    
            public bool IsEnabled(LogLevel logLevel)
            {
                return true;
            }
    
            public IDisposable BeginScope<TState>(TState state)
            {
                return null;
            }
        }
    
        public class MyLoggerProvider : ILoggerProvider
        {
            public void Dispose()
            {
                
            }
    
            public ILogger CreateLogger(string categoryName)
            {
                return new MyLogger();
            }
        }
    
        public static class MyLoggerExtension
        {
            public static ILoggingBuilder AddMyLogger(this ILoggingBuilder builder)
            {
                builder.AddConfiguration();
                builder.Services.TryAddEnumerable(ServiceDescriptor.Singleton<ILoggerProvider, MyLoggerProvider>());
                return builder;
            }
        }
    class Program
        {
            static void Main(string[] args)
            {
                var services = new ServiceCollection();
                services.AddLogging(builder => { builder.AddMyLogger(); });
                var provider = services.BuildServiceProvider();
    
                var logger = provider.GetService<ILogger<Program>>();
                logger.LogInformation("test");
                Console.Read();
            }
        }
  • 相关阅读:
    raspi扩展板
    树莓派学习笔记——I2C设备载入和速率设置
    python多线程(四)
    python多线程(三)
    python多线程(二)
    python3.x对python2.x变动
    python多线程(一)
    raspi集成库及安装
    eclipse软件安装及python工程建立
    原型模式
  • 原文地址:https://www.cnblogs.com/lanpingwang/p/12541180.html
Copyright © 2011-2022 走看看