Pregunta

Estoy utilizando Quartz.NET para la programación de algunas tareas personalizadas en nuestra aplicación. Todo funciona bien, excepto que se registra una veintena de entradas de depuración en un segundo.

No sé cómo desactivar el registro de depuración. Cualquier ayuda sería muy apreciada ya que he estado tratando de las operaciones de búsqueda en la red, pero 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
¿Fue útil?

Solución

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 cambiar el youradapterhere para el adaptador de registro real que está usando, o NoOpLoggerFactoryAdapter si desea deshabilitar el registro completo.


Editar **: ** 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>

** Editar 2: **

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

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

Otros consejos

Rytmis' respuesta es grande si usted querer reducir todo su registro, que pasa a través de la infraestructura de registro común.

Sin embargo, si usted tiene más código de registro 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 este :

En el xml de configuración de log4net (app.config por lo general) que probablemente ya tenga 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 de configuración <log4net>) 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". Así que en este ejemplo de cuarzo será conectado con ERROR nivel, mientras que el resto de mi aplicación se conectará con ALL nivel.

Si alguien tiene que hacer esto en Nlog sólo tiene que añadir lo siguiente como la regla moste superior 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 que el cambio maxlevel="Info" a maxlevel="Fatal"

Para aquellos que no quieren cuarzo registro en absoluto (es decir, propio registro del código puestos de trabajo es suficiente) cuando se utiliza Nlog (nlog.config):

<?xml version="1.0" encoding="utf-8" ?>
<nlog xmlns="http://www.nlog-project.org/schemas/NLog.xsd"
      xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
      autoReload="true"
      internalLogLevel="info"
      internalLogFile="path_to_nlog_log_file">

  <!-- the targets to write to -->
  <targets async="true">
    <target name="database" type="Database">
      <commandText>
        <!-- insert into some table -->
      </commandText>
      <!-- parameters here -->
    </target>    

    <target xsi:type="Null" name="blackhole" />
  </targets>

  <!-- rules to map from logger name to target -->
  <rules>
    <!--Skip Microsoft/Quartz logs and so log only own logs-->
    <logger name="Microsoft.*" minlevel="Trace" writeTo="blackhole" final="true" />
    <logger name="Quartz*" minlevel="Trace" maxlevel="Info" writeTo="blackhole" final="true" />
    <logger name="*" minlevel="Debug" writeTo="database" />
  </rules>
</nlog>
Licenciado bajo: CC-BY-SA con atribución
No afiliado a StackOverflow
scroll top