gpt4 book ai didi

c# - Azure 函数 : Appsetting. json 无法与 Serilog.Sinks.Sumologic 一起使用

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

我们正在尝试使用 Serilog.Sinks.SumoLogic(1.0.1) 向 Azure 函数应用程序(无 .NET core)实现日志记录。下面是我们正在使用的代码和appsetting.json。

代码:

var configuration = new ConfigurationBuilder()
.SetBasePath(Directory.GetCurrentDirectory())
.AddJsonFile("appsettings.json",optional: false, reloadOnChange: true)
.Build();

var loggerFromConfig = new LoggerConfiguration()
.ReadFrom.Configuration(configuration)
.CreateLogger();

Appsettings.json:

{"Serilog": {
"MinimumLevel": {
"Default": "Information",
"Override": {
"System": "Warning",
"Microsoft": "Warning"
}
},
"WriteTo": [
{
"Name": "SumoLogic",
"Args": {
"endpointUrl": "https:"
}
}
]
}
}

通过上述应用程序设置,我们无法将 sumologic 接收器与 loggerFromConfig 对象和 _sinks = {Serilog.Core.ILogEventSink[0]} 绑定(bind),这表明存在未配置接收器。

如果我们在具有 Microsoft.NET.Core.Apps 依赖项的示例项目中尝试相同的代码,它工作正常。

似乎 appsettings.json 仅受 .NET Core 应用程序支持。

请建议如何使用带有 appsettings.json 的 Serilog 编写日志(无需 .NET Core 应用程序)。

最佳答案

据我所知,ReadFrom.Configuration方法用于从.net core项目中的appsettings.json获取设置。

因为ReadFrom.Configuration方法需要IConfiguration对象。如果要使用 ConfigurationBuilder,则需要从 Nuget 安装 Microsoft.Extensions.Configuration 包。

如果安装此 Nuget 包,则可以使用 ConfigurationBuilder 类。但它也会安装 Microsoft.NETCore.Platforms 包。

在我看来,在.net应用程序中使用Serilog的正确方法是使用LoggerConfiguration().WriteTo.SumoLogic方法,如下所示。

   var logger = new LoggerConfiguration().WriteTo.SumoLogic(url,
sourceName: "CustomSourceName",
sourceCategory: "CustomSourceCategory",
restrictedToMinimumLevel: LogEventLevel.Debug,
batchSizeLimit: 20,
period: TimeSpan.FromSeconds(1),
textFormatter: new RawFormatter())

更多详情,可以引用这个codes .

由于 ReadFrom.Configuration 方法还会从 appsettings.json 文件中读取设置,然后使用这些设置创建 LoggerConfiguration 对象,因此我建议您可以直接使用 LoggerConfiguration().WriteTo.SumoLogic 方法。

此外,如果您仍然想使用appsettings.json,我建议您可以使用 Newtonsoft 读取appsettings.json的设置包裹。然后您可以将这些设置作为参数传递到 LoggerConfiguration().WriteTo.SumoLogic 方法中。

关于c# - Azure 函数 : Appsetting. json 无法与 Serilog.Sinks.Sumologic 一起使用,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/45071892/

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