gpt4 book ai didi

elasticsearch - Docker-compose不读取环境变量以将日志写入Elasticsearch

转载 作者:行者123 更新时间:2023-12-02 22:48:04 29 4
gpt4 key购买 nike

我正在设置docker-compose.yml文件以读取docker镜像的环境变量。我的宿主项目中引用了serilog.sinks.elasticsearch nuget软件包。

如果我使用appsettings.json在Visual Studio中运行项目,它将读取设置并将其发送到日志到Elasticsearch,而不是通过docker-compose。

docker镜像的docker-compose.yml环境规范:

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中设置的MinimumLevel得到尊重。

如何设置docker-compose.yml以读取接收器并将日志发送到elasticsearch数据库?

最佳答案

尝试使用双下划线分隔符,例如-Serilog__MinimumLevel=Verbose。双下划线是Microsoft.Extensions.Configuration.EnvironmentVariables包的默认分隔符(如果您未在ConfigurationBuilder组成代码中覆盖它)。 MSDN Environment Variables Configuration Provider reference

数组环境变量设置需要索引规范。

检查一下:

Serilog__Using__0=Serilog.Sinks.Elasticsearch
Serilog__WriteTo__0__Name=Elasticsearch
Serilog__WriteTo__0__Args__nodeUris=http://localhost:9200

关于elasticsearch - Docker-compose不读取环境变量以将日志写入Elasticsearch,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/55696639/

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