如果 Common.Logging 正在使用,是否可以通过编程方式修改 NLog 变量?
Can NLog's variables be modified programatically if Common.Logging is in use?
我有一个 NLog 变量,我想在运行时在 C# 中设置它的值:
LogManager.Configuration.Variables["MyVarName"] = DetermineMyVarValue();
但那是 NLog 代码。我正在考虑使用 Common.Logging 而不是直接使用 NLog。我看不出如何通过 Common.Logging 来做这种事情。有办法吗?
或者,也许有一种方法可以在运行时从 NLog 配置文件本身中执行此操作?这样 Common.Logging 就可以回避了?例如,类似于:
<variable name="MyVarName" value="MyStaticClass.DetermineMyVarValue()"/>
最好在首次使用时调用该函数一次,而不是每次引用变量时都调用该函数?
还没有找到直接的答案,但我已经找到了一些足以满足我的目的的东西,所以我在这里提到它以防它在将来对某人有所帮助:
我只是写了一个 custom layout renderer 而不是变量,非常简单。
我有一个 NLog 变量,我想在运行时在 C# 中设置它的值:
LogManager.Configuration.Variables["MyVarName"] = DetermineMyVarValue();
但那是 NLog 代码。我正在考虑使用 Common.Logging 而不是直接使用 NLog。我看不出如何通过 Common.Logging 来做这种事情。有办法吗?
或者,也许有一种方法可以在运行时从 NLog 配置文件本身中执行此操作?这样 Common.Logging 就可以回避了?例如,类似于:
<variable name="MyVarName" value="MyStaticClass.DetermineMyVarValue()"/>
最好在首次使用时调用该函数一次,而不是每次引用变量时都调用该函数?
还没有找到直接的答案,但我已经找到了一些足以满足我的目的的东西,所以我在这里提到它以防它在将来对某人有所帮助:
我只是写了一个 custom layout renderer 而不是变量,非常简单。