2011-07-04 20 views
6

Standardowym narzędziem do rejestrowania w mojej firmie jest NLog. Próbuję wprowadzić Quartz.net i zapytano, czy może użyć NLog zamiast Log4Net.Jak przełączyć się z Log4Net na NLog w Quartz.Net?

Wiem, że mogę rekompilować, aby używać NLog, ale chciałbym zrobić to z plików konfiguracyjnych, jeśli w ogóle możliwe.

Odpowiedz

7

Zakładając, że korzystasz z Quartz.net 1.0.3. trzeba dodać odwołanie do następujących zespołów:

Common.Logging
Common.Logging.NLog
NLog

Następnie trzeba dodać następującą konfigurację w pliku konfiguracyjnym danej aplikacji:

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

Należy pamiętać, że używam zewnętrznego pliku NLog.config.

UWAGA:

Quartz.net wykorzystuje Common.Logging wersji 1.2.

+0

To zadziałało świetnie! Dzięki. Notatka dla przyszłych czytelników. Upewnij się, że WSZYSTKIE biblioteki DLL zostaną skopiowane do właściwego folderu. –

+1

Na wypadek, gdyby ktoś potrzebował tylko jednej wersji Common.Logging w swoim projekcie, zrekompilowałem Quartz 2.0 tak jak bryza. Pobierz źródła, zamień pliki binarne i skompiluj ponownie. – Kjellski

2

Używanie dyrektyw konfiguracyjnych jest z pewnością jednym ze sposobów na to, ale jeśli masz już istniejącą konfigurację nlog i chcesz po prostu "wrzucić" rejestrowanie kwarcu, nie jest to konieczne.

Wystarczy referencyjna „Common.Logging.NLog” odpowiedniej wersji z Nuget, skonfigurować rejestrowanie jako normalne i dodać to do końca:

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

Wszystkie rejestrowania kwarcowego (i wszystkich wspólnych logowania) zostanie przekierowany do istniejącej konfiguracji nlog.

Powiązane problemy