在.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);
              });<br><br>
1
上面是.net core 5.0以及之前版本的 ,.net core 6.0版本是没有.CreateHostBuilder 方法,可以在 Program.cs中的 var builder = WebApplication.CreateBuilder(args); 后面这样写
1
2
3
4
5
6
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");

或者在构造函数中取

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

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

 

posted @   LoveCoder  阅读(570)  评论(0编辑  收藏  举报
相关博文:
阅读排行:
· TypeScript + Deepseek 打造卜卦网站:技术与玄学的结合
· 阿里巴巴 QwQ-32B真的超越了 DeepSeek R-1吗?
· 【译】Visual Studio 中新的强大生产力特性
· 10年+ .NET Coder 心语 ── 封装的思维:从隐藏、稳定开始理解其本质意义
· 【设计模式】告别冗长if-else语句:使用策略模式优化代码结构
历史上的今天:
2017-09-22 CentOS 6、7下pptp vpn一键安装脚本 转来的,已测试有用
2014-09-22 Logparser 的用法
点击右上角即可分享
微信分享提示