Log4Net,如何在我的日志

时间:2016-03-04 11:32:44

标签: c# log4net log4net-appender

我指的是优秀的帖子:

Log4Net, how to add a custom field to my logging

但它并没有给我整个解决方案。

记录像“这是一个测试”这样的字符串没问题,但是如果我想记录一个变量,它就响应(null)。

这是我的剪辑代码无效:

log4net.GlobalContext.Properties["versionid"] = Variables.IDVERSION;

这是我工作的剪辑代码:

log4net.GlobalContext.Properties["versionid"] = " This is a test";

虽然,IDVERSION是我的代码c#中系统更新的公共财产。

有谁知道如何解决这个问题?我想我已接近解决方案。

2 个答案:

答案 0 :(得分:5)

目前你打电话给我:

log4net.GlobalContext.Properties["versionid"] = Variables.IDVERSION;

该属性将在当时保留Variables.IDVERSION 的值。它不会自动跟踪Variables.IDVERSION变量的更新。

因此,如果您稍后在代码中设置Variables.IDVERSION,则需要再次对Properties["versionid"]进行分配。

答案 1 :(得分:0)

当log4net评估上下文属性时,它会调用属性值的.ToString()方法。因此,如果您将引用作为值,则可以拥有动态属性值(我相信您的idversion字段是值类型,例如Int?)。

有关详细信息,请参阅https://logging.apache.org/log4net/release/manual/contexts.html