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

发布时间 2023-09-22 13:27:11作者: LoveCoder

第一步:在项目上用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);
                });

第三步:修改 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;
        }