6

Tôi đang cố gắng triển khai Quartz.Net. Miễn là không có đăng nhập cấu hình tất cả mọi thứ hoạt động (đầu ra gỡ lỗi cho thấy "không tìm thấy phần cấu hình - triệt tiêu đầu ra khai thác").Quartz.Net - Ghi nhật ký chung với log4net

Khi ghi nhật ký được bật, tôi sẽ gặp lỗi sau: Không lấy được cấu hình cho Common.Logging từ phần cấu hình 'common/logging'.

Nội exeption: xảy ra lỗi khi tạo xử lý phần cấu hình cho common/logging: Không thể tạo kiểu 'Common.Logging.Log4Net.Log4NetLoggerFactoryAdapter, Common.Logging.Log4net'

tôi sử dụng nhiều nguồn lực như this one để sửa đổi cấu hình của tôi, nhưng theo như tôi thấy nó phải chính xác.

app.config của tôi:

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

tôi tham khảo các hội đồng sau:
quartz.dll, phiên bản 2.01.100
common.logging.dll, phiên bản 2.0.0.0
common.logging. log4net.dll, phiên bản 2.0.0.0
log4net.dll, phiên bản 1.2.10.0

Tôi không thể tìm thấy lý do cho lỗi được đưa ra. Tất cả giúp đỡ được chào đón, dường như tôi quên cái gì đó ...

Trả lời

5

Bạn có thể kiểm tra xem Common.Logging.Log4net.dll đang được sao chép vào thư mục đầu ra bin của bạn hay không.

Bạn cũng chắc chắn rằng bạn không có ngoại lệ bên trong về ngoại lệ bên trong của mình (hoặc có thể là một vài mức ngoại lệ bên trong)?

+0

Tôi đã kiểm tra xem tập tin được yêu cầu có được sao chép vào thư mục bin của thư viện mà tôi đang xây dựng hay không. Những gì tôi đã không kiểm tra là thư mục bin của ứng dụng bảng điều khiển thử nghiệm và đó là nơi chúng bị thiếu. Cảm ơn! – DirkV

0

Im không chắc chắn, nhưng trong/đăng nhập cấu hình phần chung của bạn, một lần bằng văn bản log4net của nó và một lần log4net (chữ cái viết hoa) của nó:

<factoryAdapter type="Common.Logging.Log4Net.Log4NetLoggerFactoryAdapter, Common.Logging.Log4net"> 
+0

Cảm ơn bạn đã chỉ ra. Tôi so sánh nó với một ví dụ Quartz làm việc tôi tải về và sửa đổi nó. Tuy nhiên, không có kết quả. – DirkV

11

Chúng tôi đã có tình huống tương tự khi chúng tôi nâng cấp lên phiên bản mới của Common.Logging.Log4Net nơi tên DLL để thay đổi để Common.Logging.Log4Net1211 từ Common.Logging.Log4Net.

Vì vậy, chúng ta sửa đổi các tập tin cấu hình để thay đổi tên DLL:

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

Dù sao, lỗi chắc chắn chỉ ra thiếu DLL.

+0

Thông tin thêm về điều này có thể được tìm thấy tại: https://github.com/net-commons/common-logging/wiki/Common.Logging-Packaging-and-Versions – Jahmic

Các vấn đề liên quan