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

-

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

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

1
2
3
4
5
6
7
8
9
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");

或者在构造函数中取

1
2
3
4
5
private readonly ILogger<QiMenController> _logger;
       public QiMenController(ILogger<QiMenController> logger)
       {
           _logger = logger;
       }

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


本文转载 " 整理 "

原文地址 " "