2009-05-18 6 views
13

J'utilise Quartz.NET pour planifier certaines tâches personnalisées dans notre application. Tout fonctionne bien, sauf qu'il enregistre une vingtaine d'entrées de débogage en une seconde.Désactiver la journalisation du débogage dans Quartz .Net

Je ne sais pas comment désactiver la journalisation du débogage. Toute aide serait vraiment appréciée car j'ai essayé de chercher dans le net sans aucune chance.

Les entrées de débogage ressemble au-dessous

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 

Répondre

6

Quartz.net utilise Common.Logging, donc quelque chose comme ça dans votre 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> 

Assurez-vous de changez le votreadapterhere à l'adaptateur de journalisation que vous utilisez, ou NoOpLoggerFactoryAdapter si vous voulez désactiver complètement la journalisation.


** Edit: ** Basé sur le commentaire 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> 

** Edit 2: **

Pour les avantages de ceux qui ne veulent pas Pour lire les commentaires, le niveau de consignation était défini dans la configuration de la racine log4net:

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

Nous utilisons déjà le Common.Logging dans notre application ASP .Net. L'entrée dans web.config ressemble à ci-dessous. Pouvez-vous me aider à où puis-je ajouter l'entrée que vous suggérez \t \t \t \t \t \t \t \t \t \t \t \t Ganesh

+0

J'ai modifié ma réponse avec votre config et a ajouté la ligne correspondante. – Rytmis

+0

Nous enregistrons également les informations du composant que Quartz .net appelle en tant que tâche planifiée. Est-il possible de spécifier plusieurs valeurs dans la clé Sera-ce possible Niveau Merci pour votre aide – Ganesh

10

Rytmis' answer est idéal si vous voulez réduire toute votre journalisation qui passe par l'infrastructure de journalisation commune.

Mais si vous avez plus l'enregistrement de code par l'exploitation forestière commune, et vous voulez juste réduire le ammount de l'exploitation forestière de quartz (et non du reste du code), ce que je recommande est la suivante:

en vous avez probablement déjà xml config log4net (app.config habituellement) quelque chose comme ceci:

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

Laissez qu'il en est. Et après (ou ne importe où dans la section de configuration <log4net>) ajouter ceci:

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

Cette section <logger> configure tous les enregistreurs avec l'espace de noms « Quartz ». Donc, dans cet exemple, Quartz enregistrera avec le niveau ERROR tandis que le reste de mon application enregistrera avec le niveau ALL.

+1

Nice, a parfaitement fonctionné :-) –

+1

En fait, la question n'était pas comment augmenter vos niveaux de journalisation générale, à cet effet, cela devrait être marqué comme la réponse, puisque cela résout le problème. – Kjellski

2

Si quelqu'un doit le faire en NLog il suffit d'ajouter ce qui suit comme la règle supérieure de moste dans NLog.Config

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

Notez que ce sera toujours laisser Warn, erreur, aller fatale aux autres enregistreurs si vous ne voulez pas que ce changement maxlevel="Info" à maxlevel="Fatal"

+0

Hey, j'ai essayé votre conseil, mais il désactive toutes les règles d'athers, pouvez-vous expliquer de plus près comment l'utiliser correctement? –

+0

Vous devez le placer au-dessus de tous les autres loggers, assurez-vous également que certaines de vos classes sont dans un espace de nommage ou ont un nom de classe commençant par Quartz car il les désactiverait. Qu'est-ce qu'il dit à NLog d'ignorer tous les enregistreurs dont le nom commence par Quartz. – Peter

+0

peut être que je vais poster la question –

Questions connexes