NLog не записывает пустые пользовательские свойства события в SqlDatabase

У меня есть несколько пользовательских макетов событий в моей конфигурации, как это {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 значения в SomeCustomProperty но если {event-properties:item=SomeCustomProperty} не имеет значения, запись не будет добавлена ​​в базу данных.

Есть ли причина для такого поведения? Есть ли обходной путь?

1 ответ

Решение

Все рендеры макетов, как ${event-properties:item=SomeCustomProperty}, вернет пустую строку, если пусто, а не null

Другие вопросы по тегам