Asp.net core 使用aspnet core排除特定端点日志记录

Asp.net core 使用aspnet core排除特定端点日志记录,asp.net-core,.net-core,serilog,Asp.net Core,.net Core,Serilog,我们有一个aspnetcore应用程序,我们有一个healthcheck,它每x秒向一个端点发出一个请求。我们的API使用serilog,记录级别信息,记录向API发出的每个请求 我的问题是:我们如何过滤以排除对特定端点的日志请求 例如,这是我们今天的日志代码: WebHost.CreateDefaultBuilder(args) .UseStartup<Startup>() .UseSerilog((hostingCo

我们有一个aspnetcore应用程序,我们有一个healthcheck,它每x秒向一个端点发出一个请求。我们的API使用serilog,记录级别信息,记录向API发出的每个请求

我的问题是:我们如何过滤以排除对特定端点的日志请求

例如,这是我们今天的日志代码:

        WebHost.CreateDefaultBuilder(args)
            .UseStartup<Startup>()
            .UseSerilog((hostingContext, loggerConfiguration) => loggerConfiguration
                .Enrich.FromLogContext()                    
                .Filter.ByExcluding(c => c.MessageTemplate.Text.Contains("Request"))
                .WriteTo.Console()
                .WriteTo.RollingFile(hostingContext.Configuration["log-path"]))                    
            .Build();
WebHost.CreateDefaultBuilder(args)
.UseStartup()
.useserlog((hostingContext,loggerConfiguration)=>loggerConfiguration
.Enrich.FromLogContext()的
.Filter.ByExcluding(c=>c.MessageTemplate.Text.Contains(“请求”))
.WriteTo.Console()
.WriteTo.RollingFile(hostingContext.Configuration[“日志路径”]))
.Build();

今天,我们只能过滤所有请求。如何筛选特定的端点请求?

我找到了这样做的方法

我不是按
MessageTemplate
排除,而是按属性值排除

过滤器如下所示:

Filter.ByExcluding(c => c.Properties.Any(p => p.Value.ToString().Contains("swagger")))
最后,代码应该如下所示:

Filter.ByExcluding(c => c.Properties.Any(p => p.Value.ToString().Contains("swagger")))
WebHost.CreateDefaultBuilder(args)
.UseStartup()
.useserlog((hostingContext,loggerConfiguration)=>loggerConfiguration
.Enrich.FromLogContext()的
.Filter.ByExcluding(c=>c.Properties.Any(p=>p.Value.ToString().Contains(“swagger”))
.WriteTo.Console()
.WriteTo.RollingFile(hostingContext.Configuration[“日志路径”]))
.Build();

希望这能像帮助我一样帮助别人

嗨,你能举一个Log.Info调用的例子,因为这个调用会被忽略吗?我不太明白