gpt4 book ai didi

asp.net-core-2.0 - 在 AppSettings.json 中为 Serilog Sinks MsSqlServer 配置列选项

转载 作者:行者123 更新时间:2023-12-04 12:44:15 25 4
gpt4 key购买 nike

我正在尝试确定是否可以在 appsettings.json 中为 serilog sink mssqlserver 配置列选项ASP.Net Core 2 项目的文件。

我在 Program.cs 中创建和配置记录器文件。

        public static IConfiguration Configuration { get; } = new ConfigurationBuilder()
.SetBasePath(Directory.GetCurrentDirectory())
.AddJsonFile("appsettings.json", optional: false, reloadOnChange: true)
.AddJsonFile($"appsettings.{Environment.GetEnvironmentVariable("ASPNETCORE_ENVIRONMENT") ?? "Production"}.json", optional: true)
.AddEnvironmentVariables()
.Build();

public static int Main(string[] args)
{



Log.Logger = new LoggerConfiguration()
//.Enrich.WithProperty("AppName", "One Badass App") // Adds property to XML structure in properties column
.ReadFrom.Configuration(Configuration)
.CreateLogger();

try
{
Log.Information("Starting web host");
BuildWebHost(args).Run();
return 0;
}
catch (Exception ex)
{
Log.Fatal(ex, "Host terminated unexpectedly");
return 1;
}
finally
{
Log.CloseAndFlush();
}
}

我可以从 appsettings.json 文件构建配置文件,该文件包含一个 Serilog 节点,其中包含要使用的连接字符串和表的信息。
{
"AppSettings": {
"Application": {
"Name": "Payment Processing API",
"Version": "1.0"
}
},
"ConnectionStrings": {
"localPaymentProcessingDb": "Server=(localdb)\\mssqllocaldb;Database=PaymentProcessing;Trusted_Connection=True;MultipleActiveResultSets=true"
},
"Serilog": {
"MinimumLevel": "Information",
"WriteTo": [
{
"Name": "MSSqlServer",
"Args": {
"connectionString": "Server=(localdb)\\mssqllocaldb;Database=PaymentProcessing;Trusted_Connection=True;MultipleActiveResultSets=true",
"tableName": "Logs"
}
}
]
}

Github 上有一个 Unresolved 问题为此,但我还没有找到有关它的任何其他信息。

如果在 appsettings.json 中无法配置列选项,它们应该在 ASP.Net Core 2 项目中的何处以及如何配置?

最佳答案

如果其他人偶然发现了同样的问题,问题中链接的 GitHub 问题现在包含答案:

This is now possible with the latest SQL sink and Serilog.Settings.Configuration packages.



另外,我知道这个问题需要 .NET Core 2 的答案,听起来链接的 GitHub 页面回答了 2,我使用的是 .NET Core 3.1,以下对我有用(希望它也适用于 2)

我安装了 Serilog.Settings.Configuration Nuget 包并使用以下 Serilog appsettings.json 配置:
"Serilog":{
"MinimumLevel":"Information",
"WriteTo":[
{
"Name":"MSSqlServer",
"Args":{
"connectionString":"DbContext",
"tableName":"EventLog",
"autoCreateSqlTable":true,
"columnOptionsSection":{
"addStandardColumns":[
"LogEvent"
],
"removeStandardColumns":[
"MessageTemplate",
"Properties"
]
}
}
}
]
}

关于asp.net-core-2.0 - 在 AppSettings.json 中为 Serilog Sinks MsSqlServer 配置列选项,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/48690921/

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