簡體   English   中英

Quartz.net和Common.Logging - 使用Log4Net

[英]Quartz.net and Common.Logging - Using Log4Net

我在Windows服務中使用Quartz.net。 目前,觸發器沒有觸發 - 我想使用日志記錄找出原因。

我編輯了Windows服務的配置文件:

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

我的文件結構如下:

C:\\ CompanyName - 所有項目的根目錄
C:\\ CompanyName \\ build \\ bin - 我的解決方案中所有項目/類庫的輸出目錄
C:\\ CompanyName \\ lib - 放置第三方二進制文件/ dll的位置

在我的Windows服務項目中,我有一個Quartz的引用(在C:\\ CompanyName \\ lib文件夾中)

我還添加了對Common.Logging.Log4net.dll的引用

當我測試我的應用程序時,我收到以下錯誤:

無法加載文件或程序集'Common.Logging,Version = 2.0.0.0,Culture = neutral,PublicKeyToken = af08829b84f0328e'或其依賴項之一。 定位的程序集的清單定義與程序集引用不匹配。 (來自HRESULT的異常:0x80131040)“:”Common.Logging,Version = 2.0.0.0,Culture = neutral,PublicKeyToken = af08829b84f0328e

我想你可能有錯誤的Common.Logging版本。 Quartz.Net的當前版本使用Common.Logging 1.2版,而不是2.0版。 如果您需要使用2.0,請嘗試使用2.0版本的常用日志記錄重新編譯quartz.net或嘗試重定向程序集

使用此帖子調試裝配加載,以查看是否可以查明不匹配的原因。

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM