Search code examples
c#log4netquartz.net-2.0common.logginglog4net-configuration

Quartz.Net - Common Logging with log4net


I'm trying to implement Quartz.Net. As long as there is no logging configured everything works (the debug output shows "no configuration section found - suppressing logging output").

When logging is enabled I'll get the following error: Failed obtaining configuration for Common.Logging from configuration section 'common/logging'.

Inner exeption: An error occurred creating the configuration section handler for common/logging: Unable to create type 'Common.Logging.Log4Net.Log4NetLoggerFactoryAdapter, Common.Logging.Log4net'

I used several resources as this one to varify my configuration, but as far as I see it should be correct.

My 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>

I referenced the following assemblies:
quartz.dll, version 2.01.100
common.logging.dll, version 2.0.0.0
common.logging.log4net.dll, version 2.0.0.0
log4net.dll, version 1.2.10.0

I cannot find a reason for the error given. All help is welcome, apparently I forget something...


Solution

  • Can you check that Common.Logging.Log4net.dll is being copied to your bin output folder.

    Also are you sure you don't have a inner exception on your inner exception (or maybe several levels of inner exceptions) ?