我有一个端点healthcheck用于检查应用程序是否在工作。其他服务每5秒就会调用这个端点。
问题是这导致了大量的log数据用于healthcheck请求。有什么方法可以配置Nlog来禁用ASP.NET Core上特定路由的日志?
先谢谢你。
你可以使用 NLog Filters 来解决这个问题,查看 这个
我在程序上做了一个过滤器,用来记录所有的东西(不含Critical级别),并忽略包含 "SignalR "的路由。
// define a rule for non-exceptions
var nonExceptionsRule = new LoggingRule("*", LogLevel.Trace, LogLevel.Error, myTarget)
{
Final = true,
DefaultFilterResult = FilterResult.LogFinal
};
nonExceptionsRule.Filters.Add(new ConditionBasedFilter
{
Condition = "contains('${aspnet-Request-Url}','SignalR')",
Action = FilterResult.IgnoreFinal
});
你可以不在过滤器中指定任何级别,这样它就会针对所有级别。
var nonExceptionsRule = new LoggingRule("*", myTarget)
{
Final = true,
DefaultFilterResult = FilterResult.LogFinal
};