NLog没有将空的自定义事件属性写入SqlDatabase

时间:2017-02-02 15:05:57

标签: c# .net nlog

我的配置中有一些自定义事件布局,例如{event-properties:item=SomeCustomProperty}

像这样填写:

var testLogger = testNLogFactory.GetLogger("Test");
LogEventInfo theEvent = new LogEventInfo(LogLevel.Debug, null, "Test");
theEvent.Properties.Add("SomeCustomProperty", null);
testLogger.Debug(theEvent);

我有2个目标,文件和数据库。文件目标工作正常但在数据库的情况下,只要SomeCustomProperty值保持为null,就不会写入此记录。如果我用任何值替换null,它就可以正常工作。

数据库中的相应表格是正确的,并允许NULL中的SomeCustomProperty值,但如果{event-properties:item=SomeCustomProperty}没有值,则记录将不会添加到数据库中。

这种行为有什么理由吗?有没有解决方法?

1 个答案:

答案 0 :(得分:1)

所有布局渲染器(如${event-properties:item=SomeCustomProperty})将返回空字符串(如果为空),而不是null