ASP.NET Core 日志记录 - 过滤掉系统项目

Jia*_*nYA 6 logging serilog asp.net-core

我最近设置了 Serilog 来处理数据库的日志记录活动。然而,当我启动它时,我注意到大量的System活动Microsoft填满了行。我尝试在我的 Serilog 过滤器中添加几个覆盖,但仍然保留了执行操作方法和 Db 命令之类的一些覆盖。我需要覆盖什么才能将它们从我的日志中删除?

我的appsettings.json

"Serilog": {
    "MinimumLevel": "Information",
    "Override": {
      "Microsoft": "Error",
      "Microsoft.EntityFrameworkCore.Storage.IRelationalCommandBuilderFactory": "Error",
      "Microsoft.EntityFrameworkCore.Database.Command": "Error",
      "Microsoft.AspNetCore.Hosting.Internal.WebHost": "Error",
      "ToDoApi": "Error",
      "Engine": "Error",
      "System": "Error"
    },
Run Code Online (Sandbox Code Playgroud)

Jia*_*nYA 3

我发现了一个更好的方法。在我配置记录器的程序中:

Log.Logger = new LoggerConfiguration()
               .ReadFrom.Configuration(Configuration)
               .Filter.ByExcluding(Matching.FromSource("Microsoft"))
               .Filter.ByExcluding(Matching.FromSource("System"))
               .Enrich.FromLogContext()
               .CreateLogger();
Run Code Online (Sandbox Code Playgroud)

这样我就可以控制记录的内容。