MVC 6标准记录消息

杰森·里奇迈尔(Jason Richmeier)

我正在我的MVC应用程序中实现日志记录。

我注意到以下两条消息正在自动记录:

“信息:请求已成功匹配名称为'XXX'和模板为'XXX'的路由。” “详细:执行动作”

我的问题是是否可以关闭这些消息以及如何完成这些消息。我确定它在某处的配置中,但是我还没有找到它。

斯塔福德·威廉姆斯

您需要添加一个过滤器,该过滤器将忽略不需要的日志,同时继续允许您关心的日志(例如您的代码生成的日志)继续记录-无论级别如何。

这将取决于LoggerProvider您使用的是哪个,或者是否要滚动自己的。由于您还没有提供任何代码来注册您的代码LoggerProvider,因此我将以Logging / AspNet中示例应用程序为例。注释行25:

factory.AddConsole((category, logLevel) => logLevel >= LogLevel.Critical &&
    category.Equals(typeof(Program).FullName)); // restricts to Program

上面的类别过滤器限制了记录器仅记录由SampleApp.Program对象产生的项目(虽然仅允许Critical或更高级别的日志,但我们不在乎该位)

现在,您可以继续将要记录的每个名称空间列入白名单,但是将不需要的名称空间列入黑名单更容易。这些Microsoft.AspNet.*库非常嘈杂,因此您可以添加以下过滤器以阻止它们记录日志:

factory.AddConsole((category, logLevel) => !category.StartsWith("Microsoft.AspNet"));

如果您使用了自己ILogger的过滤器,则只需确保已将过滤器作为构造函数参数包含在内,并确保在实现时引用了该过滤器ILogger.IsEnabled

本文收集自互联网,转载请注明来源。

如有侵权,请联系 [email protected] 删除。

编辑于
0

我来说两句

0 条评论
登录 后参与评论

相关文章