Отладка приложения ADO log4net (которое не добавляется)

У меня это работало раньше, но теперь оно не работает, и последние два часа я рвал волосы, пытаясь понять это.

У меня есть несколько приложений, некоторые из которых предназначены для «основного» журнала, а другие - для другого журнала «задач». Главный журнал имеет 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>

Мой основной модуль базы данных журналов настроен таким же образом, но он работает. Может ли кто-нибудь порекомендовать дальнейшие стратегии отладки?


person Dave    schedule 01.09.2010    source источник


Ответы (1)


Вы можете включить внутреннюю отладку log4net и записывать отладочные сообщения для прослушивателя трассировки или системного отладчика. Я дал аналогичный совет в следующем сообщении.

person Garett    schedule 01.09.2010
comment
Это лучший совет по отладке. :) Спасибо, это полностью помогло мне разобраться в моей проблеме! - person Dave; 01.09.2010
comment
Рад, что вам удалось отследить проблему. :) - person Garett; 02.09.2010