AD8*_*AD8 1 docker asp.net-core
我有一个 dot net core 3.1 应用程序,配置为在 docker 容器中运行。虽然我已经设法使用 docker-e标志更新简单的 appsettings 配置,但当涉及到有点复杂的配置时,例如 serilog 配置,我仍然感到困惑。
应用程序设置文件:
{
"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"
}
}
]
},
.
.
.
}
Run Code Online (Sandbox Code Playgroud)
我可以使用标志更新连接字符串-e ConnectionStrings__DefaultConnection="...",我不确定如何更新 的Serilog配置WriteTo部分。
WriteTo是一个复杂的对象array。因此,您必须指定要覆盖的索引。假设您想覆盖:
"Serilog": {
"WriteTo": [
{
"Name": "Console" // this value
},
...
Run Code Online (Sandbox Code Playgroud)
-e Serilog__WriteTo__0__Name您可以根据数组中的索引 0选择键。然后只需将您想要的值传递给它,例如-e Serilog__WriteTo__0__Name=something.
要读取 .NET Core 中的确切值Configuration,请Configuration["Serilog:WriteTo:0:Name"]在启动管道中使用。
| 归档时间: |
|
| 查看次数: |
2666 次 |
| 最近记录: |