从 App.Config 设置中引用一个 NLog 变量
Reference a NLog variable from App.Config Setting
<envSettings>
<environment name="Local">
<add key="ElasticSearch.Url" value="http://localhost:9200/" />
</environment>
<environment name="Dev">
<add key="ElasticSearch.Url" value="http://XXXXXXX:9200/" />
</environment>
</envSettings>
<nlog autoReload="true" xmlns="http://www.nlog-project.org/schemas/NLog.xsd"
xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
throwExceptions="false">
<variable name="elastic.url" value="${envSettings:name=ElasticSearch.Url}"/> </nlog>
NLog 是否可以从 EnvSettings 中读取值?我用过 NLog.Extended nuget 包。
正如 Rolf 所注意到的,您可能需要一个自定义布局渲染器,因为最接近的是 System.Environment(例如 ${environment:variable=PATH}
)
那么代码:
// register ${ElasticSearch-Url}
LayoutRenderer.Register("ElasticSearch-Url", (logEvent) => retrieve ElasticSearch.url here);
请尽快执行此操作,例如在 main()
、app_start
等
<envSettings>
<environment name="Local">
<add key="ElasticSearch.Url" value="http://localhost:9200/" />
</environment>
<environment name="Dev">
<add key="ElasticSearch.Url" value="http://XXXXXXX:9200/" />
</environment>
</envSettings>
<nlog autoReload="true" xmlns="http://www.nlog-project.org/schemas/NLog.xsd"
xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
throwExceptions="false">
<variable name="elastic.url" value="${envSettings:name=ElasticSearch.Url}"/> </nlog>
NLog 是否可以从 EnvSettings 中读取值?我用过 NLog.Extended nuget 包。
正如 Rolf 所注意到的,您可能需要一个自定义布局渲染器,因为最接近的是 System.Environment(例如 ${environment:variable=PATH}
)
那么代码:
// register ${ElasticSearch-Url}
LayoutRenderer.Register("ElasticSearch-Url", (logEvent) => retrieve ElasticSearch.url here);
请尽快执行此操作,例如在 main()
、app_start
等