ASP.NET Core - NLog - 如何禁用特定路由的日志?

问题描述 投票:0回答:1

我有一个端点healthcheck用于检查应用程序是否在工作。其他服务每5秒就会调用这个端点。

问题是这导致了大量的log数据用于healthcheck请求。有什么方法可以配置Nlog来禁用ASP.NET Core上特定路由的日志?

先谢谢你。

asp.net asp.net-core asp.net-web-api logging nlog
1个回答
0
投票

你可以使用 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
};          
© www.soinside.com 2019 - 2024. All rights reserved.