c# - 从 App.Config 设置中引用 NLog 变量
问题描述
<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);
尽快执行此操作,例如 inmain()
等app_start
。
推荐阅读
- c# - 通用 OrderBy() 调用中缺少 IComparable 接口的编译时检测
- classification - 我的 Precision 和 Recall 计算出了什么问题?
- r - 我如何在 rbind 之后和嵌套循环内绘制单个 ggplot
- azure-cosmosdb - 每个进程允许的 CosmosClient 实例的最大数量是多少?
- angular - ngx-select 下拉菜单给出错误,预期为 0 参数,但在运行构建时得到 1
- java - Firebase 规则通配符键
- html - Mozilla Firefox 伪元素的 CSS 复选框问题
- python - 有没有办法为 vscode 调试预配置变量?
- video - 如何录制屏幕视频
- python - Python Pygame 获取精灵组中精灵的属性