我已經有過這個工作,但現在它不工作,我一直在我的頭髮在過去兩個小時試圖弄清楚。調試一個ADO log4net appender(不會追加)
我有幾個appender,其中一些用於「主」日誌,另一個用於另一個「任務」日誌。主日誌有4個appender:控制檯,內存,文件和數據庫(sqlite3)。任務日誌有3個appender:內存,文件和數據庫(也是sqlite)。
什麼推動我堅果是所有的appenders 除了任務日誌的數據庫appender工作很好。除了使用ThreadContext屬性將特定於任務的數據放入日誌之外,任務DB appender沒有什麼特別的特殊之處。就像我說的,所有的數據都出現在文本文件和內存緩衝區中。
我在與數據庫appender有關的輸出窗口中查找錯誤,並且沒有任何錯誤。我比較了兩個數據庫appender在我的配置XML文件,他們是相同的...我甚至刪除了我的自定義屬性混合,並且任務數據庫appender 仍然不起作用!
我的任務記錄器配置是這樣的:
<logger name="TaskLogger">
<level value="DEBUG" />
<appender-ref ref="TaskLogFile" />
<appender-ref ref="TaskLogDB" />
<appender-ref ref="TaskLogMemory" />
</logger>
我的DB的appender配置是這樣的:
<appender name="TaskLogDB" type="log4net.Appender.AdoNetAppender">
<bufferSize value="100" />
<connectionType value="System.Data.SQLite.SQLiteConnection, System.Data.SQLite, Version=1.0.66.0, Culture=neutral, PublicKeyToken=db937bc2d44ff139" />
<connectionString value="Data Source=task_log.s3db;Version=3;" />
<commandText value="INSERT INTO TaskLog (Date, Level, Thread, Logger, Message, Exception) VALUES (@Date, @Level, @Thread, @Logger, @Message, @Exception)" />
<parameter>
<parameterName value="@Date" />
<dbType value="DateTime" />
<layout type="log4net.Layout.RawTimeStampLayout" />
</parameter>
<parameter>
<parameterName value="@Level" />
<dbType value="String" />
<layout type="log4net.Layout.PatternLayout">
<conversionPattern value="%level" />
</layout>
</parameter>
<parameter>
<parameterName value="@Logger" />
<dbType value="String" />
<layout type="log4net.Layout.PatternLayout">
<conversionPattern value="%logger" />
</layout>
</parameter>
<parameter>
<parameterName value="@Thread" />
<dbType value="String" />
<layout type="log4net.Layout.PatternLayout">
<conversionPattern value="%thread" />
</layout>
</parameter>
<parameter>
<parameterName value="@Message" />
<dbType value="String" />
<layout type="log4net.Layout.PatternLayout">
<conversionPattern value="%message" />
</layout>
</parameter>
<parameter>
<parameterName value="@Exception" />
<dbType value="String" />
<layout type="log4net.Layout.PatternLayout">
<conversionPattern value="%exception" />
</layout>
</parameter>
</appender>
我主要記錄數據庫附加目的地的配置方法相同,但它作品。誰能推薦進一步的調試策略?
謝謝,我現在就開始吧! :) – Dave 2010-09-01 12:25:13
這是有史以來最好的調試提示。 :)謝謝,這完全幫助我追蹤我的問題! – Dave 2010-09-01 13:49:50
很高興你能找到問題。 :) – Garett 2010-09-02 06:43:16