Mam następujący plik logback.xml:Jak zmienić poziom rejestrowania korzeniowy programowo
<configuration debug="true">
<appender name="STDOUT" class="ch.qos.logback.core.ConsoleAppender">
<encoder>
<pattern>%d{HH:mm:ss.SSS} [%thread] %-5level %logger{36} - %msg%n</pattern>
</encoder>
</appender>
<root level="debug">
<appender-ref ref="STDOUT" />
</root>
</configuration>
Teraz po wystąpieniu określonego zdarzenia, chcę programowo zmienić poziom rejestratora głównego z debugowania do error. Nie mogę użyć substytucji zmiennych, jest to obowiązkowe, że robię to w ramach kodu.
Jak to zrobić? Dzięki.
Należy zauważyć, że celem slf4j jest abstrakcyjnym dala ramach rejestrowania, ale to pierwsza metoda eliminuje że poprzez odniesienie ramy rejestrowania bezpośrednio. –
Jeśli to zrobisz i uzyskasz wyjątek ClassCastException, najprawdopodobniej jest to spowodowane posiadaniem wielu powiązań SLF4J w ścieżce klas. Dane wyjściowe dziennika będą wskazywać to i które wiązania są obecne, aby umożliwić określenie, które z nich należy wykluczyć. – icfantv
W odpowiedzi na komentarz Tima, należy również zauważyć, że czasami po prostu pracujesz nad rozwojem, a program rejestrujący wypluwa rzeczy, które Cię nie interesują i chwilowo chcesz je wyłączyć, a więc w takim przypadku o coś się martwić. –