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();
  • 相关阅读:
    C# API 大全
    也说_T、_TEXT、TEXT、L
    项脊轩志--归有光
    C# tostring()汇总
    StructLayout特性
    关于C#静态构造函数的几点说明
    C#生成DLL文件
    做.net的早晚会用到,并且网上还没有这方面的正确资料或几乎很少
    C# 实现屏幕键盘 (ScreenKeyboard)
    Microsoft .NET Native
  • 原文地址:https://www.cnblogs.com/Xieyiincuit/p/14797440.html
Copyright © 2011-2022 走看看