Я пытаюсь программно переписать свойство CommandText
log4net.Appender.AdoNetAppender
. Когда я отлаживаю его, свойство кажется установленным, но вставка никогда не завершается.
Само значение CommandText
, безусловно, является правильным. Если я вставлю его прямо в конфигурационный файл Appender, он вставит запись. Я использую несколько других типов приложений, которые также выполняют свою работу.
Как мне перезаписать свойство CommandText
во время выполнения?
public class DdsAdoNetAppender : AdoNetAppender
{
public new string ConnectionString
{
get
{
return base.ConnectionString;
}
set
{
CommandText = "INSERT INTO ApplicationLogs ([LogDateTime],[LogType],[MachineName],[UserName],[LogMessage],[LogException]) " +
"VALUES (@log_date_time, @log_type, @machine_name, @user_name, @log_message, @log_exception)";
}
}
}
Конфигурация моего приложения:
(Значение commandText в основном пустое.)
<appender name="AdoNetAppender" type="DigitalDrawingStore.Backend.Logging.AdoNetAppenders.DdsAdoNetAppender">
<bufferSize value="1" />
<connectionType value="System.Data.SqlClient.SqlConnection, System.Data, Version=1.0.3300.0, Culture=neutral, PublicKeyToken=b77a5c561934e089" />
<ReconnectOnError value="true" />
<connectionString value="data source = (localdb)\\MSSQLLocalDB; initial catalog = TestAdoNetLogDb; integrated security = true" />
<commandText value="" />
<commandType value="Text" />
<parameter>
<parameterName value="@log_date_time" />
<dbType value="String" />
<layout type="log4net.Layout.PatternLayout" value="%date{yyyy'-'MM'-'dd HH':'mm':'ss'.'fff}" />
</parameter>
<parameter>
<parameterName value="@log_type" />
<dbType value="String" />
<size value="50" />
<layout type="log4net.Layout.PatternLayout" value="%property{LogType}" />
</parameter>
<parameter>
<parameterName value="@machine_name" />
<dbType value="String" />
<size value="255" />
<layout type="log4net.Layout.PatternLayout" value="%property{MachineName}" />
</parameter>
<parameter>
<parameterName value="@user_name" />
<dbType value="String" />
<size value="255" />
<layout type="log4net.Layout.PatternLayout" value="%property{UserName}" />
</parameter>
<parameter>
<parameterName value="@log_message" />
<dbType value="String" />
<size value="4000" />
<layout type="log4net.Layout.PatternLayout" value="%property{LogMessage}" />
</parameter>
<parameter>
<parameterName value="@log_exception" />
<dbType value="String" />
<size value="4000" />
<layout type="log4net.Layout.PatternLayout" value="%property{LogException}" />
</parameter>
</appender>