zoukankan      html  css  js  c++  java
  • Serilog使用总结

    webapps中的应用:

      我一般用于替代Microsof.AspNetCore中的自带日志,在进行HTTP Request的时候,自带的日志系统信息特别多余不简约,但其实Serilog中更强大的功能是他的 Structured logging,在记录的时候可以很方便的将复杂的数据利用 .NET 中的预置对象进行记录。在获取日志信息时透过logging API 可以轻松的记录应用程式中对象属性,方便快速进行logging 内容进行查询与分析,并将其纪录内容透过 json (可指定) 的方式输出。达到简约美观的设置:

    首先是Log的创建:

     Log.Logger = new LoggerConfiguration()
                    .MinimumLevel.Override("Microsoft.AspNetCore", LogEventLevel.Warning)
                    .MinimumLevel.Information()
                    .WriteTo.Console()
                    .WriteTo.File("logs\BlogLog.txt", rollingInterval: RollingInterval.Day,restrictedToMinimumLevel:LogEventLevel.Warning)
                    .CreateLogger();

    重写覆盖掉自带的日志设置,简单点的方法可以将 appsettings.json 中的日志记录部分删除,并在Host创建时使用Serilog覆盖默认的ILoggerFactor配置。

    public static IHostBuilder CreateHostBuilder(string[] args) =>
                Host.CreateDefaultBuilder(args)
                    .UseSerilog()
                    .ConfigureWebHostDefaults(webBuilder =>
                    {
                        webBuilder.UseStartup(typeof(StartUpDevelopment).GetTypeInfo().Assembly.FullName ?? string.Empty);
                    });

    最后在中间件注册部分加入该组件即可:

    //使用Serilog代替MsAspNetCoreRequestLogging
    //在MVC等框架中间件之前 使用静态文件之后来简化日志输出
    app.UseSerilogRequestLogging();
  • 相关阅读:
    51单片机学习1
    M41T11-RTC(实时时钟)
    ATmega8仿真——外部中断的学习
    C# 调用动态代码
    C# Attribute的用法
    DataTable相关
    addin1
    多线程信号源_红绿灯
    EF CodeFirst简单实例
    WCF配置Tcp协议
  • 原文地址:https://www.cnblogs.com/Xieyiincuit/p/14797440.html
Copyright © 2011-2022 走看看