我正在尝试以编程方式覆盖CommandText
的{{1}}属性。当我调试它时,该属性似乎已被设置,但是插入操作永远不会终止。
log4net.Appender.AdoNetAppender
值本身肯定正确。如果我直接将其粘贴到Appender的配置文件中,它将插入记录。我使用了多种其他类型的附加程序,这些附加程序也能发挥作用。
如何在运行时覆盖CommandText
属性?
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)";
}
}
}
答案 0 :(得分:1)
文档说您可以通过属性更改值。 我假设您可以添加一个构造函数,调用基本构造函数,然后更改命令文本。 另外,它说您可以覆盖GetLogStatement。
答案 1 :(得分:0)
最终我找到了解决方案:我已经从AdoNetAppender配置中完全删除了以下几行:
<connectionString value="" />
<commandText value="" />