elasticsearch Docker compose不读取环境变量以将日志写入Elasticsearch
我正在设置docker-compose.yml文件以读取docker映像的环境变量。我的宿主项目中引用了serilog.sinks.elasticsearch nuget包 如果我在Visual Studio中使用appsettings.json运行该项目,它会读取设置并将日志发送到Elasticsearch,但不会通过docker compose docker-compose.yml docker映像环境规范:
elasticsearch Docker compose不读取环境变量以将日志写入Elasticsearch,
elasticsearch,.net-core,docker-compose,serilog,
elasticsearch,.net Core,Docker Compose,Serilog,我正在设置docker-compose.yml文件以读取docker映像的环境变量。我的宿主项目中引用了serilog.sinks.elasticsearch nuget包 如果我在Visual Studio中使用appsettings.json运行该项目,它会读取设置并将日志发送到Elasticsearch,但不会通过docker compose docker-compose.yml docker映像环境规范: environment: - serilog:MinimumLevel
environment:
- serilog:MinimumLevel=Verbose
- serilog:using=Serilog.Sinks.Elasticsearch
- serilog:WriteTo:Elasticsearch.nodeUris=http://localhost:9200
本地appsettings.json有效
"Serilog": {
"MinimumLevel": "Debug",
"WriteTo": [
{
"Name": "Elasticsearch",
"Args": {
"nodeUris": "http://localhost:9200"
}
}
]
}
docker compose中设置的最小级别得到尊重
如何设置docker-compose.yml以读取接收器并将日志发送到elasticsearch数据库?尝试使用双下划线分隔符,例如-Serilog\uu MinimumLevel=Verbose。双下划线是Microsoft.Extensions.Configuration.EnvironmentVariables包的默认分隔符,如果您未在ConfigurationBuilder组合代码中覆盖它 数组环境变量设置需要索引规范 选中此项:
Serilog__Using__0=Serilog.Sinks.Elasticsearch
Serilog__WriteTo__0__Name=Elasticsearch
Serilog__WriteTo__0__Args__nodeUris=http://localhost:9200
尝试使用双下划线分隔符,例如-Serilog\uuu MinimumLevel=Verbose。双下划线是Microsoft.Extensions.Configuration.EnvironmentVariables包的默认分隔符,如果您未在ConfigurationBuilder组合代码中覆盖它 数组环境变量设置需要索引规范 选中此项:
Serilog__Using__0=Serilog.Sinks.Elasticsearch
Serilog__WriteTo__0__Name=Elasticsearch
Serilog__WriteTo__0__Args__nodeUris=http://localhost:9200
以下答案有效。向@SKorolchuk大声呼喊
- serilog:MinimumLevel=Verbose
- Serilog:WriteTo:0:Name=Elasticsearch
- serilog:WriteTo:0:Args:nodeUris=http://localhost:9200
或
以下答案有效。向@SKorolchuk大声呼喊
- serilog:MinimumLevel=Verbose
- Serilog:WriteTo:0:Name=Elasticsearch
- serilog:WriteTo:0:Args:nodeUris=http://localhost:9200
或
从docker-compose.yml读取MinimumLevel。正在使用和写入未被读取。我尝试了双下划线,但它不起作用。谢谢您的帮助。@Kabali,请查看我的最新评论。主要思想-尝试使用正确的键/值环境对指定所有值。此外,还应检查configurationBuilder层次结构。最后指定的配置扩展具有最大的优先级。但是,如果在base appsettings.json中有整个节,则应覆盖节中的所有值以匹配接受的配置。这很有效,谢谢。我仍然把它作为:而不是_u_u_u_u_u_u_u_u_u_u_u_u_u_u_u_u_u_u_u_。谢谢你的帮助。@Kabali,请检查答案是否符合你的问题。ThanksMinimumLevel从docker-compose.yml读取。正在使用和写入未被读取。我尝试了双下划线,但它不起作用。谢谢您的帮助。@Kabali,请查看我的最新评论。主要思想-尝试使用正确的键/值环境对指定所有值。此外,还应检查configurationBuilder层次结构。最后指定的配置扩展具有最大的优先级。但是,如果在base appsettings.json中有整个节,则应覆盖节中的所有值以匹配接受的配置。这很有效,谢谢。我仍然把它作为:而不是_u_u_u_u_u_u_u_u_u_u_u_u_u_u_u_u_u_u_u_。谢谢你的帮助。@Kabali,请检查答案是否符合你的问题。谢谢