2009-05-18 11 views
13

Estoy usando Quartz.NET para programar algunas tareas personalizadas en nuestra aplicación. Todo funciona bien, excepto que registra aproximadamente veinte entradas de depuración en un segundo.Desactivar el registro de depuración en Quartz .Net

No sé cómo desactivar el registro de depuración. Cualquier ayuda sería muy apreciada ya que he estado tratando de buscar en la red sin suerte.

Las entradas de depuración se ven como el siguiente

DEBUG 2009-05-12 03:24:14,000 8612670ms StdRowLockSemaphore ObtainLock   - Lock 'TRIGGER_ACCESS' is desired by: SchedulerFactory_QuartzSchedulerThread 
DEBUG 2009-05-12 03:24:14,029 8612699ms StdRowLockSemaphore ExecuteSQL   - Lock 'TRIGGER_ACCESS' is being obtained: SchedulerFactory_QuartzSchedulerThread 
DEBUG 2009-05-12 03:24:14,029 8612699ms StdRowLockSemaphore ObtainLock   - Lock 'TRIGGER_ACCESS' given to: SchedulerFactory_QuartzSchedulerThread 
DEBUG 2009-05-12 03:24:14,034 8612704ms StdRowLockSemaphore ReleaseLock  - Lock 'TRIGGER_ACCESS' returned by: SchedulerFactory_QuartzSchedulerThread 
DEBUG 2009-05-12 03:24:14,035 8612705ms StdRowLockSemaphore ObtainLock   - Lock 'TRIGGER_ACCESS' is desired by: SchedulerFactory_QuartzSchedulerThread 
DEBUG 2009-05-12 03:24:14,035 8612705ms JobRunShell   Run    - Calling Execute on job DEFAULT.ProcessIncomingMTRJob 

Respuesta

6

Quartz.net utiliza Common.Logging, así que algo como esto en su App.config/Web.config:

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

<common> 
    <logging> 
     <factoryAdapter type="Common.Logging.Simple.**youradapterhere**, Common.Logging"> 
      <arg key="level" value="ERROR" /> 
     </factoryAdapter> 
    </logging> 
</common> 

Asegúrese de cambie el youradapterhere al adaptador de registro real que está utilizando, o NoOpLoggerFactoryAdapter si desea deshabilitar el registro por completo.


** Edición: ** Basado en el comentario de Ganesh:

<sectionGroup name="common"> 
    <section name="logging" type="Common.Logging.ConfigurationSectionHandler, Common.Logging"/> 
</sectionGroup> 
<common> 
    <logging> 
     <factoryAdapter type="Common.Logging.Log4Net.Log4NetLoggerFactoryAdapter, Common.Logging.Log4Net"> 
      <arg key="configType" value="INLINE"/> 
      <arg key="configFile" value="filename"/> 
      <arg key="level" value="ERROR" /> <!-- add this line here --> 
     </factoryAdapter> 
    </logging> 
</common> 

** Edición 2: **

Para los beneficios de los que no quieren para leer los comentarios, el nivel de registro se estableció realmente en la configuración raíz de log4net:

<log4net> 
    <root> 
     <level value="DEBUG" /> <!-- This is the value that needed changing --> 
     <appender-ref ref="Console" /> 
     <appender-ref ref="RollingFile" /> 
    </root> 
</log4net> 
+0

Ya estamos utilizando Common.Logging en nuestra aplicación ASP .NET. La entrada en web.config se ve a continuación. ¿Me puede ayudar como hacer Dónde puedo añadir la entrada que sugiere

\t \t \t \t \t \t \t \t \t \t \t \t Ganesh

+0

he editado mi respuesta con su configuración y añadí la línea correspondiente. – Rytmis

+0

También estamos registrando información del componente que Quartz .net invoca como un trabajo programado. ¿Es posible especificar múltiples valores en la clave ¿Será esto posible? Gracias por toda su ayuda – Ganesh

10

Rytmis' answer es ideal si desea reducir todo el registro que pasa por la infraestructura de registro común.

Pero si usted tiene más de registro de código a través de Registro Común, y lo que desea es reducir el ammount de la tala de cuarzo (y no desde el resto del código), lo que recomiendo es la siguiente:

en el XML de configuración de log4net (app.config por lo general) que probablemente ya tienen algo como esto:

<root> 
     <level value="ALL" /> 
     <appender-ref ... /> 
     ... 
    </root> 

Deja que tal como es. Y después de eso (o en cualquier lugar dentro de la sección <log4net> config) acaba de añadir lo siguiente:

<logger name="Quartz"> 
     <level value="ERROR" /> 
    </logger> 

Esta sección <logger> configurará todos los registradores con el espacio de nombres "cuarzo". Entonces, en este ejemplo, Quartz iniciará sesión con el nivel ERROR, mientras que el resto de mi aplicación se registrará con el nivel ALL.

+1

Bueno, funcionó a la perfección :-) –

+1

En realidad, la pregunta no era cómo superar los niveles generales de registro, por lo tanto, esto debería marcarse como la respuesta, ya que esto está solucionando el problema. – Kjellski

2

Si alguien tiene que hacer esto en Nlog sólo tiene que añadir lo siguiente como la regla superior moste en NLog.Config

<!-- Disable Quartz info logging --> 
<logger name="Quartz*" minlevel="Trace" maxlevel="Info" final="true" /> 

Tenga en cuenta que esto todavía deja warn, error, fatal ir a los otros registradores si no desea ese cambio maxlevel="Info" a maxlevel="Fatal"

+0

Oye, he intentado tu consejo, pero deshabilita todas las reglas de los aters, ¿puedes explicar más de cerca cómo usarlo, verdad? –

+0

Debe colocarlo encima de todos los demás registradores, también asegúrese de que las clases que no sean de usted estén en un espacio de nombres o tengan un nombre de clase que comience con Cuarzo, ya que lo desactivaría. Lo que hace le dice a NLog que ignore todos los registradores que tienen un nombre que comienza con Quartz. – Peter

+0

puede ser que publique la pregunta –

Cuestiones relacionadas