Ale*_*key 19 c# serilog azure-functions
我有一个 Azure 函数,它使用 Serilog 通过Serilog AppInsights 接收器 v3.1写入 AppInsights 。
中的代码Startup.cs看起来像这样
Log.Logger = new LoggerConfiguration()
.ReadFrom.Configuration(config)
.CreateLogger();
Run Code Online (Sandbox Code Playgroud)
和appsettings.json
"Serilog": {
"Using": [
"Serilog.Sinks.ApplicationInsights"
],
"WriteTo": [
{
"Name": "ApplicationInsights",
"Args": {
"instrumentationKey": "...",
"restrictedToMinimumLevel": "Verbose",
"telemetryConverter": "Serilog.Sinks.ApplicationInsights.Sinks.ApplicationInsights.TelemetryConverters.TraceTelemetryConverter, Serilog.Sinks.ApplicationInsights"
}
}
],
...
Run Code Online (Sandbox Code Playgroud)
它可以愉快地将应用程序日志写入AppInsights。
最新的 Github文档提到了遥测配置活动的弃用以及仪器密钥的未来删除支持,因此我想将该库升级到版本 4.0。
但是,当我将接收器升级到 v4.0 时,出现以下异常:
请帮忙。
小智 44
所以我花了很多时间调试这个问题,因为我也遇到了这个问题。我承认我应该查看应用程序洞察接收器的 git 日志,因为有问题的提交就在这里
他们调整了名称空间,这导致 Serilog 配置绑定无法Serilog.Sinks.ApplicationInsights.Sinks.ApplicationInsights.TelemetryConverters.TraceTelemetryConverter再找到类型。相反,命名空间Serilog.Sinks.ApplicationInsights.TelemetryConverters.TraceTelemetryConverter如我链接的提交中所示。
希望这可以帮助