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