2010-07-06 54 views
1

我使用的AdoNetAppender ,这里是我的配置文件的一部分:为什么AdoNetAppender未将日志消息写入数据库?

<appender name="ADONetAppender" type="log4net.Appender.ADONetAppender"> 
    <bufferSize value="1" /> 
    <connectionType value="System.Data.SqlClient.SqlConnection, System.Data, Version=2.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089" /> 
    <connectionString value="[we will set this automatically at runtime]" /> 
    <commandText value="INSERT INTO Log ([Date],[Thread],[Level],[Logger],[Message],[Exception]) VALUES (@log_date, @thread, @log_level, @logger, @message, @exception)" /> 
    <parameter> 
    <parameterName value="@log_date"/> <dbType value="DateTime"/> <layout type="log4net.Layout.RawTimeStampLayout"/> 
    </parameter> 
     <parameter> 
    <parameterName value="@thread"/> <dbType value="String"/> <size value="255"/> <layout type="log4net.Layout.PatternLayout"> 
     <conversionPattern value="%thread"/> 
    </layout> 
    </parameter> 
    <parameter> 
    <parameterName value="@log_level"/> <dbType value="String"/> <size value="50"/> <layout type="log4net.Layout.PatternLayout"> 
     <conversionPattern value="%level"/> 
    </layout> 
    </parameter> 
    <parameter> 
    <parameterName value="@logger"/> <dbType value="String"/> <size value="255"/> <layout type="log4net.Layout.PatternLayout"> 
     <conversionPattern value="%logger"/> 
    </layout> 
    </parameter> 
    <parameter> 
    <parameterName value="@message"/> <dbType value="String"/> <size value="4000"/> <layout type="log4net.Layout.PatternLayout"> 
     <conversionPattern value="%message"/> 
    </layout> 
    </parameter> 
    <parameter> 
    <parameterName value="@exception"/> <dbType value="String"/> <size value="2000"/> <layout type="log4net.Layout.ExceptionLayout"/> 
    </parameter> 
</appender> 

,这是我的代码来记录消息:

private static readonly ILog fifthlog = LogManager.GetLogger("ADONetAppender"); fifthlog.Info("this is db log"); 

我还使用其他的appender像RollingFileAppender进行,他们正在完美工作,但这不是,因为当我在我的sql服务器中执行这个查询select * from Log表是空的。我的数据库连接成功,因为我测试了连接。怎么了?

回答

1

为了真正找出发生了什么事,你应该启用内部调试:

http://log4net.sourceforge.net/release/1.2.0.30316/doc/manual/faq.html#internalDebug

,为我的脑海里走过了几件事情:

  • 权限问题的数据库(如由指出已经)
  • 如果你使用集成安全:可能是你连接到调用者而不是t他托管过程(例如,如果您有共享点环境,则会发生这种情况)。
  • 与参数的一个转换的问题(尽管这似乎不太可能)
+0

日Thnx我得到它固定它是连接和权限 – Precious 2010-07-06 07:45:40

0

该帐户是否具有对Log表的插入权限?

此appender的配置输出级别是什么?

相关问题