我正在我的MVC应用程序中实现日志记录。
我注意到自动记录了以下两条消息:
“信息:请求成功匹配名称为'XXX'的路线 和模板'XXX'。“”详细:执行操作“
我的问题是,是否可以关闭这些消息以及如何完成这些消息。我确信它在配置中,但我还没有找到它。
答案 0 :(得分:2)
您需要添加一个过滤器,忽略您不关心的日志,同时继续允许您关注的日志(如您的代码所做的那样)继续记录 - 无论级别如何。< / p>
这取决于您使用的LoggerProvider
,或者您是否自己动手。由于您尚未提供任何注册LoggerProvider
的代码,因此我将使用sample app from 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
的实现中引用它。 / p>
答案 1 :(得分:0)
日志记录具有不同的级别,您可以将其设置为更高级别,它将消除信息级别日志记录。
// LogLevels
//Debug = 1,
//Verbose = 2,
//Information = 3,
//Warning = 4,
//Error = 5,
//Critical = 6,
loggerFactory.MinimumLevel = LogLevel.Warning;
您可以在Configure方法
中的Startup.cs中设置它