在.net core使用Serilog,只要简单的三步

第一步:在项目上用nuget安装 Serilog.AspNetCore 最新的稳定版即可 ,安装这个会把其他需要的包都给包含着

第二步:修改 Program.cs 的 CreateHostBuilder 方法,加入 .UseSerilog(),修改后的 CreateHostBuilder  方法如下

  public static IHostBuilder CreateHostBuilder(string[] args) =>
            Host.CreateDefaultBuilder(args)
                .ConfigureWebHostDefaults(webBuilder =>
                {
                    webBuilder.UseStartup<Startup>();
                }).UseSerilog((hostingContext, loggerConfiguration) =>
                {
                    loggerConfiguration.ReadFrom.Configuration(hostingContext.Configuration);
                });

上面是.net core 5.0以及之前版本的 ,.net core 6.0版本是没有.CreateHostBuilder 方法,可以在 Program.cs中的 var builder = WebApplication.CreateBuilder(args); 后面这样写
var builder = WebApplication.CreateBuilder(args);

builder.Host.UseSerilog((hostingContext, loggerConfiguration) =>
{
loggerConfiguration.ReadFrom.Configuration(hostingContext.Configuration);
});

  

 

第三步:修改 appsettings.json,加入如下节点

"Serilog": {
    "Using": [ "Serilog.Sinks.Console", "Serilog.Sinks.File" ],
    // 日志输出级别
    "MinimumLevel": {
      "Default": "Debug",
      "Override": {
        // 日志调用类命名空间如果以 Microsoft 开头,覆盖日志输出最小级别为 Information
        "Microsoft": "Warning",
        "Microsoft.Hosting": "Information",
        "System": "Warning",
        "Microsoft.Hosting.Lifetime": "Information"
      }
    },
    "WriteTo": [
      { "Name": "Console" },
      {
        "Name": "File",
        "Args": { "path": "Logs/log.txt" }
      }
    ]
  }

接下来就可以调用了

调用可以如下:

   Log.Error("test");

或者在构造函数中取

 private readonly ILogger<QiMenController> _logger;
        public QiMenController(ILogger<QiMenController> logger) 
        {
            _logger = logger;
        }

 json里面如何配置日志最小等级、输出到什么介质等,自己搜资料吧,我也是搜的。

 

posted @ 2023-09-22 13:23  LoveCoder  阅读(369)  评论(0编辑  收藏  举报