2009-05-18 14 views
13

Używam Quartz.NET do planowania niektórych niestandardowych zadań w naszej aplikacji. Wszystko działa dobrze, z wyjątkiem tego, że rejestruje około dwudziestu wpisów debugowania w ciągu jednej sekundy.Wyłącz debugowanie Logowanie w kwarcu .Net

Nie wiem, jak wyłączyć rejestrowanie debugowania. Jakakolwiek pomoc byłaby naprawdę doceniana, gdy próbowałem wyszukiwać w sieci bez powodzenia.

wpisy debugowania wyglądać poniżej

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 

Odpowiedz

6

Quartz.net wykorzystuje Common.Logging, więc coś takiego w swoim 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> 

Koniecznie zmień youradapterhere na rzeczywisty adapter logowania, którego używasz, lub NoOpLoggerFactoryAdapter, jeśli chcesz całkowicie wyłączyć rejestrowanie.


** Edit: ** podstawie komentarzu Ganesh za:

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

z korzyścią dla tych, którzy nie chcą aby przeczytać komentarze, poziom dziennika został ustawiony w konfiguracji katalogu głównego log4net:

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

Już używamy Common.Logging w naszej aplikacji ASP .Net. Wpis w pliku web.config wygląda jak poniżej. Czy możesz mi pomóc, gdzie mogę dodać wpis, który zasugerowałeś \t \t \t \t \t \t \t \t \t \t \t \t Ganesh

+0

I edytowane moją odpowiedź z config i dodać odpowiednią linię. – Rytmis

+0

Zapisujemy również informacje z komponentu, który Quartz .net wywołuje jako zaplanowane zadanie. Czy jest możliwe określenie wielu wartości w kluczu Czy będzie to możliwe Dzięki za całą pomoc – Ganesh

10

Rytmis' answer jest świetny, jeśli chcesz ograniczyć wszystkie rejestrowania, które przechodzą przez Common Logging Infrastructure.

Ale jeśli masz więcej rejestrowanie kodu poprzez wspólne rejestrowania i po prostu chcesz zmniejszyć ammount rejestrowania z kwarcu (a nie od pozostałej części kodu), co mogę polecić to:

W log4net xml config (app.config zwykle) prawdopodobnie już coś takiego:

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

Zostaw to tak jak jest. A potem (lub gdziekolwiek wewnątrz sekcji <log4net> config) wystarczy dodać to:

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

Ta sekcja <logger> skonfiguruje wszystkie rejestratory z przestrzeni nazw „Quartz”. W tym przykładzie Quartz będzie logował się z poziomem ERROR, podczas gdy reszta mojej aplikacji będzie logować się z poziomem ALL.

+1

Niezła, działała idealnie :-) –

+1

Właściwie nie chodziło o to, w jaki sposób zwiększyć ogólne poziomy rejestrowania, dlatego powinno to być zaznaczone jako odpowiedź, ponieważ to rozwiązuje problem. – Kjellski

2

Jeśli ktoś musi to zrobić w nlog wystarczy dodać następujące jako top reguły moste w plik NLog.config

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

Należy pamiętać, że będzie to jeszcze niech Warn, Error, Fatal iść do innych rejestratorów jeżeli nie chcesz tej zmiany maxlevel="Info" do maxlevel="Fatal"

+0

Hej, próbowałem twojej rady, ale to wyłącza wszystkie reguły atherów, czy możesz wyjaśnić, bliższe, jak z niego korzystać, prawda? –

+0

Powinieneś umieścić go ponad wszystkimi innymi rejestratorami, upewnij się również, że klasy inne niż ciebie znajdują się w przestrzeni nazw lub mają nazwy klas zaczynające się od kwarcu, ponieważ mogłoby to spowodować ich wyłączenie. Dzięki temu NLog ignoruje wszystkie rejestratory, których nazwy zaczynają się od Quartz. – Peter

+0

może być I'll posłać pytanie –

Powiązane problemy