W jaki sposób można szybko wyłączyć wszystkie dane wyjściowe przy użyciu pliku przy użyciu pliku ?Wyłączanie wyjścia Log4J w Javie
Odpowiedz
poziom ustawiony na OFF (zamiast Debug INFO, ....)
Można zmienić poziom na OFF, który powinien pozbyć się wszystkich logowania. Według strony log4j ważne poziomy w kolejności ważności to TRACE, DEBUG, INFO, WARN, ERROR, FATAL. Istnieje one undocumented level o nazwie OFF, która jest wyższym poziomem niż FATAL i wyłącza rejestrowanie.
Można również utworzyć dodatkowy program rejestrujący, który nie rejestruje niczego (poziom WYŁ.), Dzięki czemu można łatwo przełączać rejestratory root. Here's a post, aby zacząć od tego.
Być może zechcesz również przeczytać Log4J FAQ,, ponieważ wyłączenie wszystkich rejestrowań może nie pomóc. Z pewnością nie przyspieszy to twojej aplikacji, ponieważ kod logowania jest wykonywany tak, aż do momentu, w którym log4j zdecyduje, że nie musi rejestrować tego wpisu.
log4j.rootLogger=OFF
Jeśli chcesz wyłączyć zalogowaniu programowo następnie użyć
List<Logger> loggers = Collections.<Logger>list(LogManager.getCurrentLoggers());
loggers.add(LogManager.getRootLogger());
for (Logger logger : loggers) {
logger.setLevel(Level.OFF);
}
Podał "przy użyciu pliku log4j.properties" i jest bardzo użyteczny. –
Dziękuję, właśnie tego chciałem. –
A jak przywrócić rejestratory do poprzedniego ustawienia (programowo)? –
zmienić poziom, co chcesz. (Używam Log4j2, wersja 2.6.2). Jest to najprostszy sposób, zmiana <Root level="off">
Na przykład: Plik log4j2.xml
środowiska Development
<?xml version="1.0" encoding="UTF-8"?>
<Configuration status="WARN">
<Appenders>
<Console name="Console" target="SYSTEM_OUT">
<PatternLayout pattern="%d{HH:mm:ss.SSS} [%t] %-5level %logger{36} - %msg%n"/>
</Console>
<Console name="SimpleConsole" target="SYSTEM_OUT">
<PatternLayout pattern="%msg%n"/>
</Console>
</Appenders>
<Loggers>
<Root level="error">
<AppenderRef ref="Console"/>
</Root>
</Loggers>
<Loggers>
<Root level="info">
<AppenderRef ref="SimpleConsole"/>
</Root>
</Loggers>
</Configuration>
środowisku produkcyjnym
<?xml version="1.0" encoding="UTF-8"?>
<Configuration status="WARN">
<Appenders>
<Console name="Console" target="SYSTEM_OUT">
<PatternLayout pattern="%d{HH:mm:ss.SSS} [%t] %-5level %logger{36} - %msg%n"/>
</Console>
<Console name="SimpleConsole" target="SYSTEM_OUT">
<PatternLayout pattern="%msg%n"/>
</Console>
</Appenders>
<Loggers>
<Root level="off">
<AppenderRef ref="Console"/>
</Root>
</Loggers>
<Loggers>
<Root level="off">
<AppenderRef ref="SimpleConsole"/>
</Root>
</Loggers>
</Configuration>
Ponadto, możliwe jest również, aby włączyć wylogowanie programowalne:
Logger.getRootLogger().setLevel(Level.OFF);
Albo
Logger.getRootLogger().removeAllAppenders();
Logger.getRootLogger().addAppender(new NullAppender());
To jest najlepsze rozwiązanie dla autonomicznych aplikacji to nie powinno niczego rejestrować. – basZero
- 1. ma wyjścia log4j w Grails app
- 2. Tworzenie wyjścia LaTeX w Javie
- 3. Wyłączanie komunikatów WebView z wyjścia logcat
- 4. Punkt wyjścia z metody w Javie
- 5. Łańcuch do wyjścia binarnego w Javie
- 6. Przekierowanie wyjścia ProcessBuilder w Javie 5/6?
- 7. Wyłączanie kodowania HTML wewnątrz wyjścia niestandardowego rozszerzenia znacznika Python
- 8. Przekierowanie wyjścia fprintf do portu
- 9. Konfiguracja log4j w EAR
- 10. Wyjątkowa głębokość w log4j
- 11. Mieszanie log4j 1.x i log4j 2
- 12. Log4j 2. Jak uzyskać komunikaty debugowania log4j?
- 13. log4j stackoverflow
- 14. Wyrównanie log4j
- 15. Log4j w JUnit Przypadek testowy
- 16. Jak włączyć Logger.debug() w Log4j
- 17. log4j StringToMatch w pliku właściwości
- 18. Wyłączanie "Definiuj" w UITextField
- 19. Wyłączanie kolorów w cqlsh
- 20. Wyłączanie SlidingMenu w działaniu
- 21. Wyłączanie HTML.TextAreaFor w MVC3
- 22. Wyłączanie rejestrowania w Paramiko
- 23. Wyłączanie przeciągania w karuzeli
- 24. Wyłączanie grawitacji w Matter.js
- 25. Wyłączanie iMessage w MFMessageComposeViewController
- 26. Wyłączanie elementów w JList
- 27. Zatrzymywanie wątku w Javie?
- 28. Wyłączanie NSRunLoop
- 29. Zgłaszający bazę danych Log4j
- 30. Domyślna wartość log4j MDC:
a pod TRACE jest "poziom" WSZYSTKO, co jest swego rodzaju przeciwieństwo. Po drugie, może być szybszy, jeśli program robi coś w stylu "if (logger.isDebugEnabled()) logger.debug (...)" –
PO nie wspomina o wydajności jako powodzie, dla którego chce wyłączyć wszystkie rejestrowanie. Kiedy muszę to zrobić, dzieje się tak dlatego, że wiele bibliotek cierpi na swoistą dyzenterię wyrębu, która nie produkuje żadnych użytecznych informacji i chcę na krótką chwilę sobie z nią poradzić. –