gpt4 book ai didi

docker - asp net core docker serilog配置

转载 作者:行者123 更新时间:2023-12-02 20:57:52 25 4
gpt4 key购买 nike

我有一个配置为在Docker容器中运行的dot net core 3.1应用程序。
虽然我已经使用docker -e标志设法更新了简单的appsettings配置,但是对于一些复杂的配置(例如serilog配置),我仍然感到困惑。

appsettings文件:

{
"AllowedHosts": "*",
"ConnectionStrings": {
"DefaultConnection": "Host=172.18.101.65;Port=5432;Username=postgres;Password=pgadmin;Database=identityserver;"
},
"Serilog": {
"Using": [],
"MinimumLevel": {
"Default": "Information",
"Override": {
"Microsoft": "Warning",
"System": "Warning"
}
},
"Enrich": [ "FromLogContext", "WithMachineName", "WithProcesssId", "WithThreadId" ],
"WriteTo": [
{
"Name": "Console"
},
{
"Name": "File",
"Args": {
"path": "D:\\Logs\\IDSvr\\Log-.txt",
"outputTemplate": "{Timestamp:G} {Message}{NewLine:1}{Exception:1}",
"rollingInterval": "Day",
"shared": true
}
},
{
"Name": "Seq",
"Args": {
"serverUrl": "http://localhost:8081"
}
}
]
},
.
.
.
}

我可以使用 -e ConnectionStrings__DefaultConnection="..."标志更新连接字符串,但不确定如何更新 SerilogWriteTo配置部分。

最佳答案

WriteTo是一个复杂的对象array。因此,您必须指定要覆盖的索引。假设您要覆盖:

"Serilog": {
"WriteTo": [
{
"Name": "Console" // this value
},
...

由于数组中的索引为0,因此可以通过 -e Serilog__WriteTo__0__Name选择键。然后只需将其传递给想要的值即可,例如 -e Serilog__WriteTo__0__Name=something

若要读取.NET Core Configuration中的确切值,请在启动管道中使用 Configuration["Serilog:WriteTo:0:Name"]

关于docker - asp net core docker serilog配置,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/61998472/

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