Краткий ответ: считается плохой практикой использовать его для регистрации.
Это наблюдение, что в старые времена, когда не было общедоступных / общепринятых сред ведения журналов, каждый использовал System.err для вывода сообщений об ошибках и трассировки стека на консоль. Этот подход может быть подходящим на этапе разработки и локального тестирования, но не подходит для производственной среды, поскольку вы можете потерять важные сообщения об ошибках. Из-за этого сегодня почти во всех инструментах статического анализа этот вид кода обнаруживается и помечается как плохая практика (или проблема с аналогичным названием).
Фреймворки ведения журналов, в свою очередь, предоставляют структурированный и логичный способ регистрации ваших событий и сообщений об ошибках, поскольку они могут хранить сообщения в различных постоянных местах (файл журнала, log db и т. Д.).
Самым очевидным (и без внешних зависимостей) разрешением hack является использование встроенной инфраструктуры Java Logging через класс java.util.logging.Logger
, поскольку он по умолчанию передает события регистрации в консоль. Например:
final Logger log = Logger.getLogger(getClass().getName());
...
log.log(Level.ERROR, "Something went wrong", theException);
(или вы можете просто отключить эту опцию анализа)