【发布时间】:2016-05-04 12:07:45
【问题描述】:
如果我将日志服务添加到容器(在 ASP.NET 5 RC1 中):
services.AddSingleton<ILoggerFactory>();
services.AddSingleton(typeof(ILogger<>), typeof(Logger<>));
//or just services.AddLogging();
然后我可以在我的应用层中使用 Logger:
class MyAppLogicService
{
public MyAppLogicService(ILogger<MyAppLogicService> logger)
{
logger.LogInformation("Hey");
}
}
但在这种情况下,我的 logger.LogInformation() 事件将与 不重要 框架信息事件混合(根据开发人员的说法,每个请求最多 10 个!)。
ASP.NET 5 documentation states:
建议您在级别执行应用程序日志记录 您的应用程序及其 API,而不是在框架级别。这 框架已经内置了日志记录,可以简单地通过 设置适当的日志记录详细级别。
这是什么意思?是不是不建议在客户端代码(app逻辑)中使用ILogger/ILoggerFactory?
将应用程序级日志记录与框架级日志记录分开的优雅解决方案是什么? 现在我正在使用 Serilog 并通过 ContextSource 进行过滤,但这远非优雅......
【问题讨论】:
标签: c# logging asp.net-core