У меня есть log4net, регистрирующийся в моем приложении .net 3.5. Ведение журнала вставляется в базу данных. Одна из проблем, которые возникают у меня, заключается в том, что для базы данных, в которой я не устанавливаю данные, она вставляет «NULL» вместо базы данных null. Моя конфигурация являетсяlog4net AdoNetAppender вставляет строку «Null» вместо нулевого в базе данных
<appender name="AdoNetAppender" type="log4net.Appender.AdoNetAppender">
<immediateFlush value="true" />
<bufferSize value="0" />
<connectionType value="MySql.Data.MySqlClient.MySqlConnection, MySql.Data" />
<connectionString value="data source=localhost;initial catalog=logging_db;User ID=root;Password=" />
<commandText value="INSERT INTO system_log(appname, action,context_id)
VALUES (@appname, @action, @context_id);" />
<parameter>
<parameterName value="appname" />
<dbType value="String" />
<size value="10" />
<layout type="log4net.Layout.PatternLayout">
<conversionPattern value="My Web Service" />
</layout>
</parameter>
<parameter>
<parameterName value="action" />
<dbType value="String" />
<size value="45" />
<layout type="log4net.Layout.PatternLayout">
<conversionPattern value="%5c{1}.%M" />
</layout>
</parameter>
<parameter>
<parameterName value="context_id" />
<dbType value="String" />
<size value="48" />
<layout type="log4net.Layout.PatternLayout">
<conversionPattern value="%X{context_id}" />
</layout>
</parameter>
<filter type="log4net.Filter.LevelRangeFilter">
<acceptOnMatch value="true" />
<levelMin value="DEBUG" />
<levelMax value="FATAL" />
</filter>
</appender>
В некоторых методах я устанавливающие context_id в моем методе, как
log4net.LogicalThreadContext.Properties["context_id"] = "My context";
Он прекрасно вставляя, где я предоставил его, но неправильно, когда я не поставил его. Я также проверил этот вопрос на https://issues.apache.org/jira/browse/LOG4NET-28 но он помечается как решенное
Это последнее, что я хочу, если никакое другое решение не найдено. Любая идея, если я могу настроить хранимую процедуру вместо инструкции insert? –
Спасибо большое Szeki –
@KamranShahid приветствую - я обновил ответ, чтобы позвонить в хранимую процедуру – Szeki