【发布时间】:2020-01-20 20:37:53
【问题描述】:
我在我们的 API 中使用 NLog 进行了一些测试以登录到 Elasticsearch 实例。 Elasticsearch 实例在 Docker 中运行,如果使用 IIS Express 执行 API,我可以毫无问题地登录 Elasticsearch,并且可以查看创建的“logstash”索引,但如果我在 Docker 容器中运行 API,则日志永远不会到达 Elasticsearch 并且永远不会创建索引。
我的 NLog 配置:
<?xml version="1.0" encoding="utf-8" ?>
<nlog xmlns="http://www.nlog-project.org/schemas/NLog.xsd"
xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
autoReload="true"
throwConfigExceptions="true"
internalLogLevel="info"
internalLogFile="c:\temp\internal-nlog-AspNetCore3.txt">
<extensions>
<add assembly="NLog.Targets.ElasticSearch"/>
</extensions>
<targets>
<target name="ElasticSearch" xsi:type="BufferingWrapper" flushTimeout="5000">
<target xsi:type="ElasticSearch"/>
</target>
</targets>
<rules>
<logger name="*" minlevel="Trace" writeTo="ElasticSearch" />
<logger name="Microsoft.*" maxlevel="Info" final="true" />
</rules>
</nlog>
在我的 appsettings.json 中:
"ElasticsearchUrl": "http://192.168.0.9:9200",
也许我遗漏了什么,或者我不了解容器之间的交互。
【问题讨论】:
标签: api docker elasticsearch asp.net-core nlog