Отключить ведение журнала в Quartz.Net

Я использую Quartz.NET для планирования некоторых пользовательских задач в нашем приложении. Все работает отлично, за исключением того, что за две секунды регистрируется около двадцати отладочных записей.

Я не знаю, как отключить ведение журнала отладки. Любая помощь будет действительно оценена, поскольку я пытался искать в сети без везения.

Отладочные записи выглядят следующим образом

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

Ответы

Ответ 1

Quartz.net использует Common.Logging, поэтому что-то вроде этого в вашем 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>

Обязательно измените параметр youradapterhere на фактический адаптер ведения журнала, который вы используете, или NoOpLoggerFactoryAdapter, если вы хотите полностью отключить ведение журнала.


** Изменить: ** На основе комментария Ганеша:

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

** Редактировать 2: **

В интересах тех, кто не хочет читать комментарии, уровень журнала был фактически установлен в корневой конфигурации log4net:

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

Ответ 2

Ответ Rytmis - это замечательно, если вы хотите сократить все ваши записи, которые проходят через общую инфраструктуру ведения журнала.

Но если у вас есть больше кодовых журналов через Common Logging, и вы просто хотите уменьшить количество ведения журнала из Quartz (, а не из остальной части вашего кода), то я рекомендую это

В конфигурационном файле log4net xml (app.config обычно) у вас, вероятно, уже есть что-то вроде этого:

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

Оставьте это как есть. И после этого (или где-нибудь внутри раздела <log4net> config) просто добавьте это:

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

В этом разделе <logger> будут настроены все регистраторы с пространством имен "Quartz". Итак, в этом примере Quartz будет регистрироваться с уровнем ERROR, в то время как остальное мое приложение будет регистрироваться с уровнем ALL.

Ответ 3

Если кому-то нужно это сделать в NLog, просто добавьте следующее в качестве правила top moste в NLog.Config

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

Обратите внимание, что это все равно позволит Warn, Error, Fatal перейти к другим регистраторам, если вы не хотите, чтобы это изменение maxlevel="Info" до maxlevel="Fatal"