2009-05-18 12 views
13

Sto utilizzando Quartz.NET per pianificare alcune attività personalizzate nella nostra applicazione. Tutto funziona bene, tranne che registra circa venti voci di debug in un secondo.Disattiva la registrazione debug in quarzo .Net

Non so come disattivare la registrazione di debug. Qualsiasi aiuto sarebbe molto apprezzato visto che ho cercato di cercare nella rete senza fortuna.

Le voci di debug apparire come il seguito

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 

risposta

6

Quartz.net utilizza Common.Logging, quindi qualcosa di simile nel vostro 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> 

essere sicuri di modificare youradapterhere con l'adattatore di registrazione corrente che si sta utilizzando o NoOpLoggerFactoryAdapter se si desidera disabilitare completamente la registrazione.


** Edit: ** Sulla base di commento di 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: **

per i benefici di coloro che non vogliono per leggere i commenti, il livello di registro è stato effettivamente impostato nella configurazione radice di log4net:

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

Stiamo già utilizzando il Common.Logging nella nostra applicazione ASP .Net. La voce nel web.config appare come di seguito. mi potete aiutare fuori da dove posso aggiungere la voce che avete suggerito

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

+0

Ho modificato la mia risposta con il vostro config e aggiunto la relativa riga. – Rytmis

+0

Stiamo anche registrando le informazioni dal componente che Quartz .net richiama come lavoro programmato. È possibile specificare più valori nella chiave Questo sarà possibile Grazie per tutto il vostro aiuto – Ganesh

10

Rytmis' answer è ideale se si desidera ridurre tutta la registrazione che passa attraverso la Common Logging Infrastructure.

Ma se si dispone di più la registrazione del codice attraverso la registrazione degli Common, e si vuole solo ridurre la quantità degli logging da Quarzo (e non dal resto del vostro codice), quello che mi raccomando è questo:

Nel xml log4net config (app.config solito) probabilmente già avere qualcosa di simile:

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

Lascia che così com'è. E dopo che (o dovunque all'interno della sezione <log4net> config) basta aggiungere questo:

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

Questa sezione <logger> configurerà tutti i logger con lo spazio dei nomi "Quartz". Quindi in questo esempio Quartz eseguirà il logging con il livello ERROR mentre il resto della mia app effettuerà il login con il livello ALL.

+1

Bello, ha funzionato perfettamente :-) –

+1

In realtà la domanda non era come superare i livelli generali di registrazione, quindi, questa dovrebbe essere contrassegnata come risposta, poiché questo è risolvere il problema. – Kjellski

2

Se qualcuno ha bisogno di fare questo in NLog basta aggiungere quanto segue come la regola superiore moste in NLog.Config

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

Si noti che questo sarà ancora lascia avvertire, errore, andare fatale agli altri logger se non si desidera tale modifica maxlevel="Info" a maxlevel="Fatal"

+0

Ehi, ho provato il tuo consiglio, ma disabilita tutte le regole delle bancarelle, puoi spiegare più da vicino come usarlo correttamente? –

+0

Dovresti posizionarlo sopra tutti gli altri logger, inoltre assicurati che nessuna delle tue classi si trovi in ​​uno spazio dei nomi o che abbia un nome di classe che inizia con Quartz come disabiliterebbe. Che cosa dice a NLog di ignorare tutti i logger che hanno un nome che inizia con Quartz. – Peter

+0

potrebbe essere postare la domanda –

Problemi correlati