Отключить ведение журнала отладки 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
3 ответов
Quartz.net использует Common.Лесозаготовки, что-то вроде этого в вашем приложении.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>
** Edit 2:**
для тех, кто не хочет читать комментарии, уровень журнала фактически был установлен в корневой конфигурации log4net:
<log4net>
<root>
<level value="DEBUG" /> <!-- This is the value that needed changing -->
<appender-ref ref="Console" />
<appender-ref ref="RollingFile" />
</root>
</log4net>
Rytmis' ответ отлично, если вы хотите уменьшить все свои журналы, которые проходят через общую инфраструктуру ведения журнала.
но если у вас больше кода, регистрирующегося через общий журнал, и вы просто хотите уменьшить количество журналов из кварца (а не из остальной части вашего кода), что я рекомендую это:
в xml конфигурации log4net (app.config
обычно) у вас, вероятно, уже есть что-то вроде это:
<root>
<level value="ALL" />
<appender-ref ... />
...
</root>
оставить как есть. И после этого (или где-нибудь внутри <log4net>
раздел конфигурации) просто добавьте это:
<logger name="Quartz">
<level value="ERROR" />
</logger>
этой <logger>
раздел настроит все регистраторы с пространством имен "кварц". Таким образом, в этом примере кварц будет регистрироваться с уровнем ERROR
в то время как остальная часть моего приложения будет регистрироваться с level ALL
.
Если кому-то нужно сделать это в NLog, просто добавьте следующее в качестве верхнего правила moste в NLog.Config
<!-- Disable Quartz info logging -->
<logger name="Quartz*" minlevel="Trace" maxlevel="Info" final="true" />
обратите внимание, что это все равно позволит предупредить, ошибка, фатальная перейти к другим регистраторам, если вы не хотите этого изменения maxlevel="Info"
to maxlevel="Fatal"