我的 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/