Pytanie Wyłącz debugowanie Logowanie w kwarcu .Net


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.

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ądają jak 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

14
2018-05-18 11:15


pochodzenie




Odpowiedzi:


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

Pamiętaj, aby zmienić youradapterhere do rzeczywistego adaptera logowania, którego używasz, lub NoOpLoggerFactoryAdapter, jeśli chcesz całkowicie wyłączyć rejestrowanie.


** Edytować: ** Na podstawie komentarza Ganesh'a:

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

** Edytuj 2: **

Dla korzyści tych, którzy nie chcą czytać komentarzy, poziom dziennika został faktycznie ustawiony w konfiguracji głównej log4net:

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

6
2018-05-18 11:30



Używamy już 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ś? SectionGroup name = "common"> <section name = "logging" type = "Common.Logging.ConfigurationSectionHandler, Common.Logging" /> </ sectionGroup> < common> <logowanie> <typ factoryAdapter = "Common.Logging.Log4Net.Log4NetLoggerFactoryAdapter, Common.Logging.Log4Net"> <arg key = "configType" value = "INLINE" /> <arg key = "configFile" value = "filename "/> </ factoryAdapter> </ logging> </ common> - Ganesh
Edytowałem swoją odpowiedź za pomocą twojej konfiguracji i dodałem odpowiednią linię. - Rytmis
Logujemy się również z komponentu, który Quartz .net wywołuje jako zaplanowane zadanie. Czy możliwe jest podanie wielu wartości w kluczu <arg key = "level" value = "ERROR" /> <! - dodaj tę linię tutaj -> Czy będzie to możliwe <arg key = "level" value = "ERROR , INFO, WARN "/> Dzięki za twoją pomoc - Ganesh
Dokumenty Log4Net mówią: "Żądanie dziennika poziomu L w rejestratorze z (przypisanym lub odziedziczonym, w zależności od tego, co jest odpowiednie) poziomem K, jest włączone, jeśli L> = K. Ta reguła jest sercem log4net. poziomy są uporządkowane, dla standardowych poziomów mamy DEBUG <INFO <WARN <ERROR <FATAL. " Sposób, w jaki to interpretuję, polega na tym, że jeśli ustawisz Llog w INFO, otrzymasz również wszystkie wiadomości z poziomów WARN, ERROR i FATAL. Dlatego w moim przykładzie powinieneś zamienić ERROR na INFO. - Rytmis
Zgodnie z twoją radą dodałem określoną linię do pliku web.config w zalecanej pozycji, ale Quartz .Net nadal drukuje komunikaty dziennika DEBUG. Dodana przeze mnie linia to <arg key = "level" value = "INFO" /> Jakiś pomysł, dlaczego nie działa? - Ganesh


Odpowiedź Rytmisa jest świetny, jeśli chcesz ograniczyć wszystkie rejestrowania, które przechodzą przez Common Logging Infrastructure.

Ale jeśli masz więcej kodów logujących się przez Common Logging, a chcesz tylko zmniejszyć ilość logowań z Quartz (a nie od reszty twojego kodu), co polecam jest to:

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

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

Pozostaw to tak, jak jest. A potem (lub gdziekolwiek w środku <log4net> sekcja konfiguracji) po prostu dodaj to:

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

To <logger> sekcja skonfiguruje wszystkie rejestratory z przestrzenią nazw "Kwarc". W tym przykładzie Quartz będzie logował się z poziomem ERROR podczas gdy reszta mojej aplikacji będzie logować się z poziomu ALL.


13
2017-11-01 21:16



Fajna, działała idealnie :-) - Greg Oks
Właściwie nie chodziło o to, jak zwiększyć ogólne poziomy rejestrowania, dlatego należy oznaczyć je jako odpowiedź, ponieważ to rozwiązuje problem. - Kjellski


Jeśli ktoś musi to zrobić w NLog, dodaj poniższe jako najwyższą regułę w NLog.Config

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

Zauważ, że to pozwoli Ci ostrzec, błąd, fatalny przejść do innych rejestratorów, jeśli nie chcesz tej zmiany maxlevel="Info" do maxlevel="Fatal"


5
2017-10-22 12:30



Hej, próbowałem twojej rady, ale to wyłącza wszystkie zasady, czy możesz dokładniej wyjaśnić, jak z niej korzystać? - Valentyn Vynogradskiy
Powinieneś umieścić go ponad wszystkimi innymi rejestratorami, upewnij się również, że klasy inne niż ciebie znajdują się w przestrzeni nazw lub mają nazwę klasy zaczynającą się od kwarcu, ponieważ mogłoby to uniemożliwić. Dzięki temu NLog ignoruje wszystkie rejestratory, których nazwy zaczynają się od Quartz. - Peter
może być, opublikuję pytanie - Valentyn Vynogradskiy
zobacz szczegóły tutaj stackoverflow.com/questions/27525676/... - Valentyn Vynogradskiy