我正在尝试在 Azure 函数(在 .NET 8 上运行)中向我的 serilog 添加丰富器,但它没有使用
HttpContext
? 记录任何内容
我使用自定义丰富器进行了测试,并向其注入了
HttpContextAccessor
- 结果在日志记录上下文中 HttpContext
为空。
我错过了什么?
builder.Services.AddHttpContextAccessor();
var sinkOptions = new MSSqlServerSinkOptions
{
TableName = "Logs",
AutoCreateSqlTable = true,
BatchPostingLimit = 10
};
Log.Logger = new LoggerConfiguration()
.Enrich.FromLogContext()
.Enrich.WithRequestHeader("X-Platform", "XPlatform")
.Enrich.WithRequestHeader("X-App-Version")
.Enrich.WithClientIp()
.WriteTo.MSSqlServer(
connectionString: xxx
columnOptions: new ColumnOptions(),
sinkOptions: sinkOptions,
restrictedToMinimumLevel: LogEventLevel.Warning
)
.CreateLogger();
builder.Services.AddLogging(lb =>
{
lb.AddSerilog(Log.Logger, true);
});
使用 HttpContext 的丰富器在使用 dotnet-isolated 模式时将不起作用。