2010-07-06 59 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的配置輸出級別是什麼?

相關問題