[英]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.