zoukankan      html  css  js  c++  java
  • JMS微服务开发示例(七)使用 Serilog 作为日志提供者

    nuget 引入:

    Serilog.Extensions.Logging
    Serilog.Settings.Configuration
    Serilog.Sinks.Console
    Serilog.Sinks.File

    初始化代码:

                var log = new LoggerConfiguration()
                  .ReadFrom.Configuration(Configuration)
                   // 最小的日志输出级别
                   //.MinimumLevel.Error()
                   // 日志调用类命名空间如果以 Microsoft 开头,覆盖日志输出最小级别为 Information
                   //.MinimumLevel.Override("Microsoft", LogEventLevel.Information)
                   .Enrich.FromLogContext()
                   // 配置日志输出到文件,文件输出到当前项目的 logs 目录下
                   .WriteTo.Logger(lc =>
                   {
                       lc.Filter.ByIncludingOnly(Matching.FromSource<JMS.JMSClient>())
                       .WriteTo.File("logs/JMSClient Error/log.txt",
                        outputTemplate: "{Timestamp:HH:mm:ss} {NewLine}{Message}{NewLine}{Exception}",
                           rollingInterval: RollingInterval.Day,
                           rollOnFileSizeLimit: true);
                   })
                  .WriteTo.Logger(lc =>
                  {
                      lc.Filter.ByExcluding(e => e.Level == LogEventLevel.Error || e.Level == LogEventLevel.Debug)
                      .WriteTo.File("logs/normal/log.txt",
                       outputTemplate: "{Timestamp:HH:mm:ss} [{Level}] {SourceContext} {NewLine}{Message}{NewLine}{Exception}",
                          rollingInterval: RollingInterval.Day,
                          rollOnFileSizeLimit: true);
                  })
                   .WriteTo.Logger(lc =>
                   {
                       lc.Filter.ByIncludingOnly(e => e.Level == LogEventLevel.Error)
                       .WriteTo.File("logs/errors/log.txt",
                        outputTemplate: "{Timestamp:HH:mm:ss} [{Level}] {SourceContext} {NewLine}{Message}{NewLine}{Exception}",
                           rollingInterval: RollingInterval.Day,
                           rollOnFileSizeLimit: true);
                   })
                    .WriteTo.Logger(lc =>
                    {
                        lc.Filter.ByIncludingOnly(e => e.Level == LogEventLevel.Debug)
                        .WriteTo.File("logs/debugs/log.txt",
                         outputTemplate: "{Timestamp:HH:mm:ss} [{Level}] {SourceContext} {NewLine}{Message}{NewLine}{Exception}",
                            rollingInterval: RollingInterval.Day,
                            rollOnFileSizeLimit: true);
                    });
    
    #if DEBUG
                log.WriteTo.Console();
    #endif
    
                // 创建 logger
                Log.Logger = log.CreateLogger();

    在ServiceCollection中注册Serilog:

                services.AddLogging(builder => {
                    builder.AddSerilog();
                });
  • 相关阅读:
    P1182 数列分段`Section II` 二分
    洛谷 P1025 数的划分
    深浅拷贝
    数据的内置方法
    控制流程-if/while/for
    python的基本运算符
    花式赋值
    python的注释
    Python的垃圾回收机制
    变量与常量
  • 原文地址:https://www.cnblogs.com/IWings/p/13474759.html
Copyright © 2011-2022 走看看