У меня это работало раньше, но теперь оно не работает, и последние два часа я рвал волосы, пытаясь понять это.
У меня есть несколько приложений, некоторые из которых предназначены для «основного» журнала, а другие - для другого журнала «задач». Главный журнал имеет 4 приложения: консоль, память, файл и БД (sqlite3). Журнал задач имеет 3 приложения: память, файл и БД (также sqlite).
Что сводит меня с ума, так это то, что все приложения кроме приложения БД журнала задач отлично работают. В приложении Task DB нет ничего особенного, кроме того, что я использую свойства ThreadContext для помещения в журнал данных, относящихся к конкретной задаче. И, как я уже сказал, все эти данные прекрасно отображаются в текстовом файле и буфере памяти.
Я искал ошибки в окне вывода, связанные с приложением DB, но их нет. Я сравнил оба приложения DB в моем XML-файле конфигурации, и они идентичны ... Я даже удалил свои настраиваемые свойства из микса, а приложение DB задач все еще не работает!
Мой регистратор задач настроен так:
<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>
Мой основной модуль базы данных журналов настроен таким же образом, но он работает. Может ли кто-нибудь порекомендовать дальнейшие стратегии отладки?