【发布时间】:2021-12-27 09:35:50
【问题描述】:
因为一些程序集有嘈杂的日志,我只想得到警告、错误和致命日志消息。
这是我的代码,有什么问题?
Log.Logger = new LoggerConfiguration()
.Enrich.FromLogContext()
.CreateBootstrapLogger();
var builder = WebApplication.CreateBuilder(args);
builder.Host.UseSerilog((context, services, cfg) => cfg
.ReadFrom.Configuration(context.Configuration)
.ReadFrom.Services(services)
.MinimumLevel.Override("Microsoft", LogEventLevel.Information)
.MinimumLevel.Override("Microsoft.AspNetCore", LogEventLevel.Warning)
.MinimumLevel.Information()
.Enrich.WithProperty("Version", Assembly.GetEntryAssembly()?.GetName().Version?.ToString())
.Enrich.FromLogContext()
.WriteTo.Logger(lc =>
{
lc.WriteTo.Console();
})
.WriteTo.Logger(lc =>
{
lc.Filter.ByExcluding(x =>
x.Properties.ContainsKey("SourceContext") &&
x.Properties["SourceContext"].ToString() == "Marvin.Cache.Headers.HttpCacheHeadersMiddleware" &&
x.Level is LogEventLevel.Verbose or LogEventLevel.Debug or LogEventLevel.Information)
.WriteTo.MongoDBBson(mongoDbCfg =>
{
// db option...
});
}));
但我的数据库中仍有Marvin.Cache.Headers.HttpCacheHeadersMiddleware 信息日志
日志
{
"_id" : ObjectId("61c981a91ba9664afac0778c"),
"Level" : "Information",
"UtcTimeStamp" : ISODate("2021-12-27T09:04:40.674Z"),
"MessageTemplate" : {
"Text" : "Vary header generated: Accept, Accept-Language, Accept-Encoding.",
"Tokens" : [
{
"_t" : "TextToken",
"StartIndex" : 0,
"Text" : "Vary header generated: Accept, Accept-Language, Accept-Encoding."
}
]
},
"RenderedMessage" : "Vary header generated: Accept, Accept-Language, Accept-Encoding.",
"Properties" : {
"SourceContext" : "Marvin.Cache.Headers.HttpCacheHeadersMiddleware",
"RequestId" : "0HME92VII1HBR:00000007",
"RequestPath" : "/api/Audio",
"ConnectionId" : "0HME92VII1HBR",
"Version" : "2.0.5.8031"
},
"Exception" : {
"_csharpnull" : true
}
}
【问题讨论】: