c# - ASP .Net 核心日志记录 - 如何过滤记录器提供程序?

标签 c# logging asp.net-core

我的 asp.net 核心项目中有 2 个记录器提供程序: 1.控制台提供者。 2. 数据库提供者(自定义提供者)。 我不想每次都记录到所有提供程序,但是,有时会写入控制台提供程序,有时会写入数据库提供程序。 我看到了过滤器提供程序选项,但它只允许您按日志级别或类别进行过滤。 ASP .net 核心日志记录库是否可以选择只写入一个提供程序? 还是我必须自己编写日志记录服务而不使用 ASP .net 核心日志记录库?

最佳答案

是的,您可以使用过滤有选择地登录到控制台或调试。 AddConsole 和 AddDebug 方法有一个重载,可让您指定过滤该日志记录提供程序所依据的条件。

public void Configure(IApplicationBuilder app,
    IHostingEnvironment env,
    ILoggerFactory loggerFactory)
{
    loggerFactory
        .AddConsole(LogLevel.Warning)
        .AddDebug((category, logLevel) => (category.Contains("TodoApi") && logLevel >= LogLevel.Trace));

有关详细信息,请参阅 Microsoft 的文档:https://learn.microsoft.com/en-us/aspnet/core/fundamentals/logging#log-filtering

关于c# - ASP .Net 核心日志记录 - 如何过滤记录器提供程序?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/44993357/

相关文章:

c# - C# 中带比较器的 HashSet 数组

java - jPOS 记录器 :To add logger in packager

go - 生产中的 log.SetFlags(log.LstdFlags | log.Lshortfile)

java - 安装Logstash报错JAVA(OpenJDK 64-Bit Server VM警告)

c# - 关联来自不同数据库的表 - Entity Framework

c# - 双工回调总是匿名的

c# - 尝试使用 JSON.NET 反序列化带有周围 [] 字符的 JSON

asp.net-core - 在ASP.NET Core中查找类似的方法filterContext.ActionParameters

c# - ViewComponent 和 InvokeAsync 方法

c# - 如何在 ASP.NET Core 中手动生成防伪 token