我在.NET 6.0上使用Serilog.我可以将appsettings.json中的LogLevel设置为只允许特定类型的日志(log).

但我只需要编写由代码显式编写的日志(log)消息.

例如:如果我将LogLevel设置为Information,并且在控制器方法中,我在Log中写入一行:

logger.LogInformation(1, "Test message for Information Level.");

当它运行时,我可以在数据库中看到这条消息,但也有其他由系统生成的消息.我不需要在我的表中出现系统生成的消息.

如何记录仅由应用程序代码编写的消息?

推荐答案

设置"Microsoft"日志(log)级别&>默认日志(log)级别
由Program.cs(Serilog.AspNetCore)

var logger = new LoggerConfiguration()
    .ReadFrom.Configuration(builder.Configuration)
    .MinimumLevel.Information()
    .MinimumLevel.Override("Microsoft", LogEventLevel.Fatal)
    .WriteTo.Console()
    .CreateLogger();
builder.Services.AddSerilog(logger);

或appsettings.json

  "Serilog": {
    "MinimumLevel": {
      "Default": "Information",
      "Override": {
        "Microsoft": "Fatal"
      }
    }
  }

日志(log)记录级别:详细-0、调试-1、信息-2、警告-3、错误-4、致命-5.

Csharp相关问答推荐

Blazor:用参数创建根路径

为什么使用DXGI输出复制和Direct 3D时捕获的图像数据全为零?

如何创建ASP.NET Core主机并在同一进程中运行请求

如何在Visual Studio代码中更改大括号模式{},用于C#语言

具有单一导航属性的EF核心一对多关系

只有第一个LINQ.Count()语句有效

使用Orleans进行的单元测试找不到接口的实现

使用两个不同的枚举作为Switch语句中的CASE生成唯一值

Swagger没有显示int?可以为空

.NET:从XPath定位原始XML文档中的 node

如何让两个.NET版本不兼容的项目对话?

当空判断结果赋给变量时,为什么会出现可能空异常警告的解引用?

数据库.Migrate在对接容器重启时失败

仅在Blazor Web App中覆盖生产的基本路径(.NET8中的_Hosts.cshtml文件功能?)

NETSDK1201:对于面向.NET 8.0和更高版本的项目,默认情况下,指定RUNTIME标识符将不再生成自包含的应用程序

HttpClient,上传文件时实现进度

使用ITfoxtec.Identity.Saml2解析相同键多值SAML 2声明

测试单个对象是否与Func<;T,bool>;匹配

C#:我需要根据换行符拆分字符串,而不是在字符串中用双引号分隔换行符

使用c#中的Windows 10关机消息