如果我给 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个!)。
建议您在应用程序及其API的级别上执行应用程序日志记录,而不是在框架级别上执行。框架已经内置了日志记录,可以通过简单设置适当的日志记录详细程度来启用。
这是什么意思?这是否意味着不推荐在客户端代码(应用程序逻辑)中使用ILogger / ILoggerFactory?
如何优雅地将应用程序级别的记录与框架级别的记录分离?目前,我正在使用Serilog并通过ContextSource过滤,但这远非优雅...