c# - 使用 serilog 浓缩器 nuget 包时,CorrelationId 为 Null
问题描述
我想将 correlationId 的值填充到我的 applicationInsights 中。现在该值为空。我已经安装了 serilog.enrichers.correlationId nuget 包,并且在我的 startup.cs 文件中有 services.AddHTTPContextAccessor,但相关性 ID 的值仍然为空。我错过了什么吗?有什么建议吗?我的来源是:- https://github.com/ekmsystems/serilog-enrichers-correlation-id
Log.Logger = new LoggerConfiguration()
.ReadFrom.Configuration(Configuration)
.CreateLogger();
以上是我在startup.cs 中的记录器配置。我在 appsettings.json 的丰富标签中定义的所有其他丰富器都被填充,但相关 ID 为空。
解决方案
这是我的测试结果:
我在下面做了什么:
在我的asp.net核心应用中,先安装相关包,然后编辑Program.cs
-> CreateHostBuilder
:</p>
public static IHostBuilder CreateHostBuilder(string[] args) =>
Host.CreateDefaultBuilder(args)
.ConfigureWebHostDefaults(webBuilder =>
{
webBuilder.UseStartup<Startup>();
}).UseSerilog((hostingContext, loggerConfiguration) => loggerConfiguration
.ReadFrom.Configuration(hostingContext.Configuration).Enrich.WithCorrelationId()
.WriteTo.Console(outputTemplate: "[{Timestamp:HH:mm:ss} {CorrelationId} {Level:u3}] {Message:lj}{NewLine}{Exception}")
.WriteTo.ApplicationInsights(new TelemetryConfiguration { InstrumentationKey = "your_instrumentation_key" }, TelemetryConverter.Traces)
);
我的包裹:
<Project Sdk="Microsoft.NET.Sdk.Web">
<PropertyGroup>
<TargetFramework>netcoreapp3.1</TargetFramework>
</PropertyGroup>
<ItemGroup>
<PackageReference Include="Microsoft.ApplicationInsights.AspNetCore" Version="2.17.0" />
<PackageReference Include="Serilog.AspNetCore" Version="4.1.0" />
<PackageReference Include="Serilog.Enrichers.CorrelationId" Version="3.0.1" />
<PackageReference Include="Serilog.Settings.Configuration" Version="3.1.0" />
<PackageReference Include="Serilog.Sinks.ApplicationInsights" Version="3.1.0" />
</ItemGroup>
</Project>
推荐阅读
- javascript - 如何从 C# 和 Javascript 访问 IMemoryCache
- node.js - Mongoose 从动态集合中查找数据
- php - 使用 ActiveRecord 删除 Yii2 的所有相关记录
- linux - OSError:[Errno 24] python 导入时打开的文件过多
- azure - Azure 数据工厂 V2 - 并行触发的同一管道的多个实例
- autohotkey - 错误“~”不是有效的键名 (AutoHotkey 1.1.30.00)
- java - 为什么这是一个无效的 smali 寄存器?
- r - R比较文档之间的单词
- android - 如何从 ListView 和 SQLite 数据库中删除项目?
- php - 来自php的gradle命令执行失败