ASP .Net核心日志 - 如何过滤记录器提供商?

时间:2017-07-09 05:40:08

标签: c# logging asp.net-core

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

1 个答案:

答案 0 :(得分:2)

是的,您可以使用过滤来有选择地登录到Console与Debug。 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://docs.microsoft.com/en-us/aspnet/core/fundamentals/logging#log-filtering