Debugging an ADO log4net appender (that won#39;t append)(调试ADO Log4net附加器(这不是附加程序))
问题描述
我以前用过它,但现在它不工作了,过去两个小时我一直在绞尽脑汁地想弄明白它。
我有几个附加器,其中一些用于"主"日志,另一个用于另一个"任务"日志。主日志有4个附加器:控制台、内存、文件和数据库(Sqlite3)。任务日志有3个附加项:内存、文件和数据库(也称为SQLite)。
让我抓狂的是,除了任务日志的数据库附加器之外,所有的附加器都工作得很好。任务数据库附加器没有什么特别之处,除了我使用ThreadContext属性将特定于任务的数据放入日志中。就像我说的,所有这些数据都很好地出现在文本文件和内存缓冲区中。
我在输出窗口中查找了与DB附加器相关的错误,但没有任何错误。我已经在我的配置XML文件中比较了这两个DB附加器,它们是相同的……我甚至从Mix中删除了我的自定义属性,任务数据库附加器仍然不起作用!
我的任务记录器配置如下:
<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>
我的主日志数据库附加器以相同的方式配置,但它工作。有人能推荐进一步的调试策略吗?
推荐答案
您可以启用Log4net内部调试,并将调试消息捕获到跟踪侦听器或系统调试器。我在以下post中给出了类似的建议。
这篇关于调试ADO Log4net附加器(这不是附加程序)的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持编程学习网!
本文标题为:调试ADO Log4net附加器(这不是附加程序)


- 如何使用 pip 安装 Python MySQLdb 模块? 2021-01-01
- 如何将 SonarQube 6.7 从 MySQL 迁移到 postgresql 2022-01-01
- 导入具有可变标题的 Excel 文件 2021-01-01
- 使用 Oracle PL/SQL developer 生成测试数据 2021-01-01
- 如何将 Byte[] 插入 SQL Server VARBINARY 列 2021-01-01
- 在SQL中,如何为每个组选择前2行 2021-01-01
- 更改自动增量起始编号? 2021-01-01
- SQL 临时表问题 2022-01-01
- 远程 mySQL 连接抛出“无法使用旧的不安全身份验证连接到 MySQL 4.1+"来自 XAMPP 的错误 2022-01-01
- 以一个值为轴心,但将一行上的数据按另一行分组? 2022-01-01