gpt4 book ai didi

.net - 在 Azure 上使用 Serilog 过滤身份验证消息

转载 作者:行者123 更新时间:2023-12-03 02:14:47 26 4
gpt4 key购买 nike

我需要使用 Serilog 在 Azure 上过滤以下消息:AuthenticationScheme:BasicAuthentication 已成功通过身份验证。该消息为信息级别。

在下面的代码中,我输入了到目前为止我尝试过的所有内容,并且仍然收到这些日志。我在 asp.net 项目中使用 .net 6。

public static void Configure(WebApplicationBuilder builder)
{
if(builder is null)
return;

Log.Logger = new LoggerConfiguration()
.Enrich.FromLogContext()
.Enrich.WithProcessId()
.Enrich.WithProcessName()
.Enrich.WithThreadId()
.MinimumLevel.Override("Microsoft.EntityFrameworkCore.Database.Command", LogEventLevel.Warning)
.MinimumLevel.Override("Microsoft", LogEventLevel.Information)
.MinimumLevel.Override("Microsoft.AspNetCore", LogEventLevel.Warning)
.MinimumLevel.Debug()
.WriteTo.Async(x => x.Logger((configureLogger) =>
{
configureLogger.Filter.ByExcluding(logEvent =>
logEvent.MessageTemplate.Text.ToLower().Contains("authenticationscheme: basicauthentication") &&
logEvent.Level < LogEventLevel.Warning);
configureLogger.WriteTo.Async(consoleConfiguration =>
{
consoleConfiguration.Console(new ExpressionTemplate(
template: "{@l:w4}: {SourceContext}\n" +
"{#if Scope is not null}" +
"\t{#each s in Scope}=> - {s}{#delimit} {#end}\n" +
"{#end}" +
"{@m}\n",
theme: TemplateTheme.Code));
});
}))
.CreateBootstrapLogger();

builder.WebHost.UseSerilog();
}

在本地,这很完美。当我记录这样的信息时:

logger.LogInformation("AuthenticationScheme: BasicAuthentication".ToUpper());

筛选器应用于本地,但不适用于 Azure。任何想法?谢谢

最佳答案

使用Serilog.Expressions:

   .Filter.ByExcluding("@m like '%AuthenticationScheme: BasicAuthentication%' ci")

关于.net - 在 Azure 上使用 Serilog 过滤身份验证消息,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/71831948/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com