我以前曾这样做过,但现在不起作用,在过去的两个小时里我一直在抓狂地试图弄清楚它。
我有几个附加程序,其中一些用于“主”日志,另一个用于另一个“任务”日志。主日志有 4 个附加程序:控制台、内存、文件和 DB (sqlite3)。任务日志有 3 个附加程序:内存、文件和 DB(也是 sqlite)。
让我抓狂的是所有的附加器除了任务日志的数据库附加器工作得很好。除了我使用 ThreadContext 属性将特定于任务的数据放入日志之外,任务 DB 附加程序没有什么特别之处。就像我说的,所有这些数据都很好地出现在文本文件和内存缓冲区中。
我在输出窗口中查找了与数据库附加程序相关的错误,但没有任何错误。我在配置 XML 文件中比较了两个数据库附加程序,它们是相同的...我什至从组合中删除了我的自定义属性,以及任务数据库附加程序still不起作用!
我的任务记录器配置如下:
<logger name="TaskLogger">
<level value="DEBUG" />
<appender-ref ref="TaskLogFile" />
<appender-ref ref="TaskLogDB" />
<appender-ref ref="TaskLogMemory" />
</logger>
我的数据库附加程序配置如下:
<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>
我的主日志数据库追加器的配置方式相同,但是it作品。谁能推荐进一步的调试策略?