2011-07-04 21 views
6

Công cụ ghi nhật ký chuẩn của công ty tôi là NLog. Tôi đang cố gắng giới thiệu Quartz.net và được hỏi liệu nó có thể sử dụng NLog thay vì Log4Net hay không.Làm cách nào để chuyển từ Log4Net sang NLog trong Quartz.Net?

Tôi biết tôi có thể biên dịch lại để sử dụng NLog, nhưng tôi muốn làm điều đó từ các tệp cấu hình nếu có thể.

Trả lời

7

Giả sử bạn đang sử dụng Quartz.net 1.0.3. bạn phải thêm một tham chiếu đến các hội đồng sau:

Common.Logging
Common.Logging.NLog
NLog

Sau đó, bạn cần phải thêm các cấu hình sau đây trong tập tin cấu hình ứng dụng của bạn:

<configuration> 
    <configSections> 
     <sectionGroup name="common"> 
     <section name="logging" type="Common.Logging.ConfigurationSectionHandler, Common.Logging" /> 
     </sectionGroup> 
    </configSections> 

    ... 

    <common> 
     <logging> 
     <factoryAdapter type="Common.Logging.NLog.NLogLoggerFactoryAdapter, Common.Logging.NLog"> 
     <arg key="configType" value="FILE" /> 
     <arg key="configFile" value="~/NLog.config" /> 
    </factoryAdapter> 
     </logging> 
    </common> 

</configuration> 

Lưu ý rằng tôi đang sử dụng tệp NLog.config bên ngoài.

LƯU Ý:

Quartz.net sử dụng Common.Logging phiên bản 1.2.

+0

Điều đó hiệu quả! Cảm ơn. Chỉ cần một lưu ý cho người đọc trong tương lai. Hãy chắc chắn rằng tất cả các DLL được sao chép vào thư mục chính xác. –

+1

Chỉ trong trường hợp ai đó chỉ muốn một phiên bản Common.Logging trong dự án của mình, tôi đã biên dịch lại Quartz với 2.0 giống như một khoe. Tải xuống các nguồn, thay thế các tệp nhị phân và biên dịch lại. – Kjellski

2

Việc sử dụng chỉ thị cấu hình chắc chắn là một cách để thực hiện việc này, nhưng nếu bạn có cấu hình nlog hiện có và muốn 'thả vào' ghi nhật ký thạch anh thì không cần thiết.

Đơn giản chỉ cần tham khảo 'Common.Logging.NLog' của phiên bản thích hợp từ NuGet, cấu hình đăng nhập của bạn như bình thường và thêm video này vào cuối cùng:

var config = new NameValueCollection(); 
var adaptor = new NLogLoggerFactoryAdapter(config); 
Common.Logging.LogManager.Adapter = adaptor; 

Tất cả các khai thác gỗ thạch anh (và tất cả khai thác gỗ thông thường) bây giờ sẽ được chuyển tiếp đến cấu hình nlog hiện tại của bạn.

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