c# - 如何将目录传递到 NLog.config?
问题描述
用户可以设置一个全局变量来定义 NLog 将记录文件的位置。但是,我不知道如何将该变量传递给NLog.config
.
我希望能够像使用它一样使用它${basedir}
,而是让它成为${userdir}
。我认为这是可行的,而不必event-properties
每次登录时都使用变量,但我不知道如何。我想在写的时候定义一次
static private NLog.Logger logger = NLog.LogManager.GetCurrentClassLogger();
有谁知道这是否可行?
解决方案
有几种方法可以将(上下文)信息传递给 NLog。我认为这种情况下“GDC”(GlobalDiagnosticsContext)是最好的方法:
在您的代码中设置:
GlobalDiagnosticsContext.Set("userdir", myDirectory);
nlog.config 中的用法:
<target name="file" xsi:type="File"
fileName="${gdc:item=userdir}/${shortdate}.log" ... />
请参阅GDC 文档
推荐阅读
- linux - 在琐碎的“睡眠 1”的情况下,是什么导致 QEMU 的开销?
- python - 在当前文件夹中下载 excel 文件而不是“下载”
- android - 复选框在android中被选中
- java - 在模拟器中调试 Android Intellij AppTutorial 不起作用
- php - 如何在 PHP 上安装 Redis 扩展?
- for-loop - 从 html 源解析参数
- python-3.x - 将 DOM 元素从父级定位到祖级会产生不同的结果
- python - WTForms SelectField 返回无
- c++ - 如何私下使用 2d 矢量作为类成员来创建游戏板?
- node.js - Node Express - 在 multer 保存文件之前处理表单数据