Ссылка на переменную NLog из настройки App.Config - PullRequest
0 голосов
/ 05 сентября 2018
<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? Я использовал пакет Nget.Extended Nuget.

1 Ответ

0 голосов
/ 05 сентября 2018

Как заметил Рольф, вам, вероятно, нужен пользовательский рендерер макетов, так как наиболее близкая вещь читает System.Environment (например, ${environment:variable=PATH})

Итак, код:

// register ${ElasticSearch-Url}
LayoutRenderer.Register("ElasticSearch-Url", (logEvent) => retrieve ElasticSearch.url here);

Сделайте это как можно скорее, например. в main(), app_start и т. д.

...