Вебинары Разобраться в IT Реферальная программа
Программирование Аналитика Дизайн Маркетинг Управление проектами
17 Ноя 2024
2 мин
90

Почему не стоит использовать java.util.logging?

Существует распространенная проблема, когда разработчики, знакомясь с Java, встречаются с встроенной библиотекой для ведения журналов — java.util.logging

Существует распространенная проблема, когда разработчики, знакомясь с Java, встречаются с встроенной библиотекой для ведения журналов — java.util.logging (или JUL). На первый взгляд, она кажется простой и удобной, однако есть ряд причин, по которым большинство разработчиков предпочитает другие решения.

Рассмотрим, например, следующую ситуацию: разработчик пишет open-source библиотеку на Java, которую планируют использовать во многих проектах. В первой версии библиотеки для ведения логов использовался JUL. Однако, по мере ее распространения, появились вопросы о выборе именно этого инструмента.

Проблемы, которые обычно возникают при использовании JUL, можно свести к следующему списку:

  1. Некоторые разработчики начинали свою работу с Java до того, как Sun выпустила JUL, и им проще продолжать использовать те инструменты, которые они уже знают, вместо того чтобы изучать что-то новое.
  2. Некоторым разработчикам не нравятся имена уровней ведения логов в JUL.
  3. Некоторым разработчикам не нравится стандартный формат вывода из JUL.
  4. Некоторые разработчики используют другие библиотеки, которые также используют определенную систему ведения журналов, и им проще использовать то же решение.
  5. Наконец, некоторые разработчики следуют за большинством и используют то, что использует большинство.

Эти причины объясняют, почему так много разработчиков предпочитают не использовать JUL. Однако стоит отметить, что существуют и более существенные проблемы, связанные с использованием JUL:

  1. Производительность. Некоторые утверждают, что производительность в SLF4J (еще одной популярной библиотеке для ведения логов) выше, чем в JUL.
  2. Конфигурация из класса. По умолчанию JUL не может загрузить файл конфигурации из класса.
  3. Доступность обработчиков вывода. JUL поставляется с 5 обработчиками вывода: консоль, файловый поток, сокет и память. Эти обработчики могут быть расширены или созданы новые.

В конечном итоге, вопрос выбора инструмента для ведения логов в большей степени зависит от конкретных требований проекта и предпочтений команды разработки. В некоторых случаях JUL может быть вполне подходящим решением, но в большинстве проектов разработчики предпочитают использовать более гибкие и мощные инструменты, такие как SLF4J или Logback.

Проверь как ты усвоил материалы статьи
Пройди тест и узнай насколько ты лучше других читателей

Добавить комментарий