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();
                });
  • 相关阅读:
    第二章 怎样培养好习惯
    十六、使用jQuery操作元素 —— DOM属性与HTML元素属性
    第六章 培养感恩的习惯
    js 问题集锦 之 二
    HTML 5 学习笔记之 常用标签简介
    MySql 笔记一 之 时间和日期函数
    HTML 5 学习笔记之 canvas 标签
    MySql 笔记三 循环语句
    转载文:架构经验系列文章
    MySql 笔记二 基础命令
  • 原文地址:https://www.cnblogs.com/IWings/p/13474759.html
Copyright © 2011-2022 走看看