2011-07-04 22 views
6

La herramienta de registro estándar de mi empresa es NLog. Intento introducir Quartz.net y me preguntaron si podría usar NLog en lugar de Log4Net.¿Cómo cambio de Log4Net a NLog en Quartz.Net?

Sé que puedo recompilar el uso de NLog, pero me gustaría hacerlo desde los archivos de configuración, si es posible.

Respuesta

7

Suponiendo que está utilizando Quartz.net 1.0.3. usted tiene que agregar una referencia a los siguientes grupos:

Common.Logging
Common.Logging.NLog
Nlog

Entonces usted tiene que agregar la siguiente configuración en el archivo de configuración de la aplicació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> 

Tenga en cuenta que estoy usando un archivo NLog.config externo.

NOTA:

Quartz.net utiliza Common.Logging versión 1.2.

+0

¡Funcionó muy bien! Gracias. Solo una nota para lectores futuros. Asegúrese de que TODAS las DLL se copien a la carpeta correcta. –

+1

Por si alguien quiere solo una versión Common.Logging en su proyecto, he recompuesto Quartz con 2.0 simplemente como una brisa. Descargue las fuentes, reemplace los binarios y vuelva a compilar. – Kjellski

2

El uso de las directivas config es ciertamente una forma de hacerlo, pero si tiene una configuración nlog existente y quiere simplemente 'soltar' el registro de cuarzo, no es necesario.

Simplemente referencia 'Common.Logging.NLog' de la versión adecuada de Nuget, configurar su registro como normal y añadir la siguiente al final:

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

Toda la tala de cuarzo (y todo el registro común) ahora se reenviará a su configuración de nlog existente.