Мое приложение использует System.setErr()
, чтобы изменить stderr
на поток, который в конечном итоге будет закрыт. Сразу после его закрытия я снова снова использую System.setErr()
, чтобы изменить stderr
на рабочий поток, который отлично подходит, когда мой код делает что-то вроде System.err.println()
, но регистрация с java.util.logging
на консоль (то есть до stderr
) больше не работает.System.setErr() не восстанавливает ведение журнала консоли после закрытия stderr
0
A
ответ
0
Чтобы решить эту проблему, я должен был re-read the logging configuration file, а затем положить обратно в console logging handler себе:
import java.util.logging.ConsoleHandler;
import java.util.logging.Loggger;
import java.util.logging.LogManager;
...
System.setErr(otherStream);
try {
LogManager.getLogManager().readConfiguration();
}
catch(java.io.IOException e) {
// ...
}
Logger.getGlobal().addHandler(new ConsoleHandler());
0
ConsoleHandler фиксирует ссылку на System.err во время строительства. Другое решение - заменить все ConsoleHandler в дереве журналов.
LogManager m = LogManager.getLogManager();
synchronized (m) {
Enumeration<String> names = m.getLoggerNames();
while (names.hasMoreElements()) {
Logger logger = m.getLogger(names.nextElement());
if (logger != null) {
for (Handler h : logger.getHandlers()) {
if (h.getClass() == ConsoleHandler.class) {
logger.removeHandler(h);
h.close();
logger.addHandler(new ConsoleHandler());
}
}
}
}
}
Смежные вопросы
- 1. Ведение журнала консоли Hibernate System.err
- 2. spring-boot - отключить ведение журнала консоли
- 3. slf4j/logback - отключить ведение журнала консоли
- 4. Отключить ведение журнала консоли в JWPlayer
- 5. Rails - как отключить ведение журнала консоли?
- 6. Как отключить ведение журнала systemd на консоли?
- 7. Синхронное ведение журнала консоли в Chrome
- 8. syslog останавливает ведение журнала после поворота журнала
- 9. System.setErr() вмешивается в Logger
- 10. Ведение журнала не отображается в консоли во время тестов django
- 11. Logback останавливает ведение журнала после перезагрузки конфигурации
- 12. Отключить ведение журнала SMS
- 13. Ведение журнала в nodejs
- 14. Ведение журнала сценариев PowerShell
- 15. Отключить подробное ведение журнала
- 16. Ведение журнала событий после запуска cmd
- 17. Ведение журнала с декораторами
- 18. Сделать постоянный ведение журнала Rails
- 19. Включить ведение журнала консоли для самого Eclipse (платформы)
- 20. Как отключить ведение журнала в консоли в Mockserver Ruby client
- 21. Отключить ведение журнала консоли от MongoDB в Eclipse
- 22. Как остановить тестирование Msunit, чтобы остановить ведение журнала консоли
- 23. Как отключить ведение журнала консоли для QuickBlox JS SDK?
- 24. Отключить ведение журнала консоли в приложении Google App Engine
- 25. Как отключить ведение журнала подключений узла mongodb узла в консоли
- 26. Отключить ведение журнала ServiceStack
- 27. Многопоточное ведение журнала
- 28. Ведение журнала Fatal Exception
- 29. Ведение журнала WebService
- 30. Ведение журнала сообщений WCF