Quartz.Net — общее ведение журнала с помощью log4net

Я пытаюсь реализовать Quartz.Net. Пока не настроено ведение журнала, все работает (вывод отладки показывает "раздел конфигурации не найден — подавление вывода журнала").

Когда ведение журнала включено, я получаю следующую ошибку: Не удалось получить конфигурацию для Common.Logging из раздела конфигурации «common/logging».

Внутреннее исключение: Произошла ошибка при создании обработчика раздела конфигурации для общего/логирования: невозможно создать тип "Common.Logging.Log4Net.Log4NetLoggerFactoryAdapter, Common.Logging.Log4net"

Я использовал несколько ресурсов, таких как этот чтобы изменить мою конфигурацию, но, насколько я вижу, она должна быть правильной.

Мой app.config:

  <configSections>
    <section name="quartz" type="System.Configuration.NameValueSectionHandler, System, Version=1.0.5000.0,Culture=neutral, PublicKeyToken=b77a5c561934e089" />
    <sectionGroup name="common">
      <section name="logging" type="Common.Logging.ConfigurationSectionHandler, Common.Logging" />
    </sectionGroup>
    <section name="log4net" type="log4net.Config.Log4NetConfigurationSectionHandler, log4net" />
  </configSections>
  <common>
    <logging>
      <factoryAdapter type="Common.Logging.Log4Net.Log4NetLoggerFactoryAdapter, Common.Logging.Log4net">
        <arg key="configType" value="INLINE" />
      </factoryAdapter>
    </logging>
  </common>  
  <log4net>
    <appender name="ConsoleAppender" type="log4net.Appender.ConsoleAppender">
      <layout type="log4net.Layout.PatternLayout">
        <param name="ConversionPattern" value="%-6p%d{yyyy-MM-dd hh:mm:ss} – %m%n" />
      </layout>
    </appender>
    <root>
      <level value="DEBUG" />
      <appender-ref ref="ConsoleAppender" />
    </root>
  </log4net>
  <quartz>
    <add key="quartz.scheduler.instanceName" value="Driver.Service.Scheduler" />
    <add key="quartz.threadPool.type" value="Quartz.Simpl.SimpleThreadPool, Quartz" />
    <add key="quartz.threadPool.threadCount" value="10" />
    <add key="quartz.threadPool.threadPriority" value="2" />
    <add key="quartz.jobStore.misfireThreshold" value="60000" />
    <add key="quartz.jobStore.type" value="Quartz.Simpl.RAMJobStore, Quartz" />
  </quartz>

Я ссылался на следующие сборки:
quart.dll, версия 2.01.100
common.logging.dll, версия 2.0.0.0
common.logging.log4net.dll, версия 2.0.0.0
log4net. dll, версия 1.2.10.0

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


person DirkV    schedule 07.11.2012    source источник


Ответы (3)


Можете ли вы проверить, что Common.Logging.Log4net.dll копируется в выходную папку bin.

Также вы уверены, что у вас нет внутреннего исключения для вашего внутреннего исключения (или, может быть, нескольких уровней внутренних исключений)?

person sgmoore    schedule 08.11.2012
comment
Я уже проверил, были ли скопированы необходимые dll в папку bin библиотеки, которую я создаю. Что я не проверял, так это папку bin тестового консольного приложения, и именно там они отсутствовали. Спасибо! - person DirkV; 09.11.2012

У нас была аналогичная ситуация, когда мы обновились до новой версии Common.Logging.Log4Net, где имя DLL изменилось на Common.Logging.Log4Net1211 с Common.Logging.Log4Net.

Итак, мы изменили файл конфигурации, чтобы изменить имя DLL:

<factoryAdapter type="Common.Logging.Log4Net.Log4NetLoggerFactoryAdapter, Common.Logging.Log4Net1211">

В любом случае, ошибка определенно указывает на отсутствие DLL.

person Slobodan Savkovic    schedule 22.08.2014
comment
Дополнительную информацию об этом можно найти по адресу: github. .com/net-commons/common-logging/wiki/ - person Jahmic; 24.05.2015

Я не уверен, но в вашем разделе конфигурации common/loging один раз написано log4net и один раз его log4Net (заглавная буква):

  <factoryAdapter type="Common.Logging.Log4Net.Log4NetLoggerFactoryAdapter, Common.Logging.Log4net">
person Greg Oks    schedule 07.11.2012
comment
Спасибо, что указали на это. Я сравнил его с рабочим примером Quartz, который я скачал и модифицировал. Однако безрезультатно. - person DirkV; 08.11.2012