Quartz.net and Common.Logging - Using Log4Net

16,688

I think you might have the wrong version of Common.Logging. The current version of Quartz.Net uses the Common.Logging version 1.2, not 2.0. If you need to use 2.0, try either recompiling quartz.net with the 2.0 version of common logging or try redirecting the assembly instead.

Share:
16,688
Alex
Author by

Alex

I'm a .net developer from Camberley, Surrey. Strong interest in web applications - emphasis on back end APIs. Recently working in serverless applications. Enjoy speaking at tech events where possible.

Updated on June 04, 2022

Comments

  • Alex
    Alex almost 2 years

    I'm using Quartz.net within a windows service. Currently, the trigger is not firing - I'd like to use the logging to find out why.

    I have edited my config file for the windows service:

    <configSections>
        <section name="log4net" type="log4net.Config.Log4NetConfigurationSectionHandler, log4net" />
    
        <sectionGroup name="common">
          <section name="logging" type="Common.Logging.ConfigurationSectionHandler, Common.Logging" />
        </sectionGroup>
    </configSections>
    
    <appSettings>
        <!--specific win service settings here-->
    </appSettings>
    
    <common>
        <logging>
            <factoryAdapter type="Common.Logging.Log4Net.Log4NetLoggerFactoryAdapter, Common.Logging.Log4Net">
                <arg key="configType" value="INLINE"/>
                <arg key="configFile" value="c:\sched.log"/>
                <arg key="level" value="INFO" />
            </factoryAdapter>
        </logging>
    </common>
    
    <log4net>
        <appender name="EventLogAppender" type="log4net.Appender.EventLogAppender">
          <layout type="log4net.Layout.PatternLayout">
            <conversionPattern value="%d [%t] %-5p %l - %m%n" />
          </layout>
        </appender>
        <root>
          <level value="INFO" />
          <appender-ref ref="EventLogAppender" />
        </root>
    </log4net>
    

    My file structure is as follows:

    C:\CompanyName - root dir for all projects
    C:\CompanyName\build\bin - Output directory for all projects / class libraries in my solution
    C:\CompanyName\lib - Where 3rd party binaries / dlls are put

    In my Windows Service project, I have a reference to Quartz (in the C:\CompanyName\lib folder)

    I have also added a reference to Common.Logging.Log4net.dll

    When I test my app, I get the following error:

    Could not load file or assembly 'Common.Logging, Version=2.0.0.0, Culture=neutral, PublicKeyToken=af08829b84f0328e' or one of its dependencies. The located assembly's manifest definition does not match the assembly reference. (Exception from HRESULT: 0x80131040)":"Common.Logging, Version=2.0.0.0, Culture=neutral, PublicKeyToken=af08829b84f0328e

  • Kjellski
    Kjellski over 12 years
    If you redirect the binding, you'll propably need the publickeytoken, therefor, use the C:\Program Files (x86)\Microsoft SDKs\Windows\v7.0A\Bin\NETFX 4.0 Tools\x64\>sn -T <path-to-Common.Logging.dll>
  • Hammad Khan
    Hammad Khan over 10 years
    Apparently Quartz ver 2.1.2 works with Commong.Logging Version 2.1.2.0