20 | 结构化日志组件Serilog

1. 结构化日志的好处

  • 易于检索
  • 易于分析统计

2. 应用场景

  • 实现日志预警
  • 实现上下文的关联
  • 实现与追踪系统的集成

3. Nuget安装包

Serilog

Serilog.AspNetCore

4. 实现代码

    public class Program
    {
        public static IConfiguration Configuration { get; } = new ConfigurationBuilder()
            .SetBasePath(Directory.GetCurrentDirectory())
            .AddJsonFile("appsettings.json", optional: false, reloadOnChange: true)
            .AddEnvironmentVariables()
            .Build();

        public static int Main(string[] args)
        { 
            //让Serilog可以接替整个默认的日志记录框架
            Log.Logger = new LoggerConfiguration().ReadFrom.Configuration(Configuration)
                .MinimumLevel.Debug()
                .Enrich.FromLogContext()
                .WriteTo.Console(new RenderedCompactJsonFormatter())
                .WriteTo.File(formatter: new CompactJsonFormatter(), "log\\myapp.txt", rollingInterval: RollingInterval.Day,fileSizeLimitBytes:1024*1024*10)
                .CreateLogger();
  
            try
            {
                Log.Information("开始启动服务");
                CreateHostBuilder(args).Build().Run();
                return 0;
            }
            catch (Exception ex)
            {
                Log.Fatal(ex, $"服务启动异常:{ex.ToString()}");
                return 1;
            }
            finally
            {
                Log.CloseAndFlush();
            }
        }

        public static IHostBuilder CreateHostBuilder(string[] args) =>
            Host.CreateDefaultBuilder(args)
                .ConfigureWebHostDefaults(webBuilder =>
                {
                    webBuilder.UseKestrel().UseUrls("http://*:8001").UseStartup<Startup>();
                })
            //注册UseSerilog,dispose设置为true会在退出时帮我们释放我们的日志对象
            .UseSerilog(dispose: true);
    }

5. 配置文件

备注1:Serilog 与 Logging 在同一层。

备注2:MinimumLevel,最小日志级别输出

备注3:Override 是用来重载Logging定日的日志级别

    "Serilog": {
        "MinimumLevel": {
            "Default": "Information",
            "Override": {
                "Microsoft": "Error",
                "System": "Information"
            }
        }
    },

  • 1
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值