nHibernate отключает мои журналы log4net - PullRequest
2 голосов
/ 04 февраля 2010

Итак, у нас было небольшое приложение ETL, у которого были некоторые проблемы с обновлениями. Которые были хорошо решены во время дневного спринта с nHibernate. Но это приложение полагалось на log4net для передачи вывода журнала в несколько разных пунктов назначения на основе параметров командной строки. Как только мы добавили nHibernate в приложение, ETL стал безупречным. Но функции регистрации полностью потерпели неудачу. С точки зрения отладчика, у любого из наших регистраторов отключены все уровни log4net.

Вот конфигурация log4net:

<log4net>
  <appender name="RollingFile" type="log4net.Appender.RollingFileAppender">
    <file value="import-" />
    <staticLogFileName value="false" />
    <appendToFile value="false" />
    <rollingStyle value="Date" />
    <maxSizeRollBackups value="5" />
    <datePattern value="yyyyMMdd-HHmm&quot;.log&quot;" />
    <layout type="log4net.Layout.PatternLayout">
      <conversionPattern value="%date %-5level - %message%newline" />
    </layout>
  </appender>

  <appender name="Console" type="log4net.Appender.ConsoleAppender">
    <layout type="log4net.Layout.PatternLayout">
      <conversionPattern value="%-5level : %message%newline" />
    </layout>
  </appender>

  <appender name="Email" type="log4net.Appender.SmtpAppender">
    <to value="wwb@example.com" />
    <from value="PeepsImporter@example.com" />
    <subject value="Cte Importer Error" />
    <smtpHost value="smtp.example.com" />
    <bufferSize value="512" />
    <lossy value="false" />
    <layout type="log4net.Layout.PatternLayout">
      <conversionPattern value="%newline%date %-5level : %message%newline%newline%newline" />
    </layout>
  </appender>

  <root>
    <level value="ALL" />
  </root>

  <logger name="Console">
    <level value="INFO" />

    <appender-ref ref="Console" />
  </logger>
  <logger name="File">
    <level value="INFO" />
    <appender-ref ref="RollingFile" />
  </logger>
  <logger name="DebugConsole">
    <level value="DEBUG" />
    <appender-ref ref="Console" />
  </logger>
  <logger name="DebugFile">
    <level value="DEBUG" />
    <appender-ref ref="RollingFile" />
  </logger>
  <logger name="EmailErrors">
    <level value="ERROR" />
    <appender-ref ref="Email" />
  </logger>
</log4net>

Не уверен, какой другой код поможет, но я рад опубликовать что-нибудь еще из этого приложения.

Ответы [ 2 ]

2 голосов
/ 04 февраля 2010

Какую версию NHibernate вы используете? Сборки старше 1.0-RC1 включили внутреннюю регистрацию. В 1.0-RC1 они изменили это, поэтому вы должны вручную вызвать log4net.XmlConfigurator.Configure (). Это было сделано, чтобы дать разработчикам больший контроль над ведением журнала.

0 голосов
/ 04 февраля 2010

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

«Как включить внутреннюю отладку log4net?»

http://logging.apache.org/log4net/release/faq.html

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...