Нужно ли обновлять log4j до slf4j [закрыто]

10

Мы рассматриваем наше веб-приложение JEE на предмет запланированного рефакторинга, и одно из предложений - заменить log4jна logbackилиslf4j

Команда не знает, следует ли нам это делать - потому что в настоящее время мы хотим следовать, если ничего не сломано, не исправлять в этой области.

Изменить: я не спрашиваю о сравнении каркасов ведения журналов, но является ли это ценный элемент рефакторинга для изменения каркаса, когда мы вполне довольны log4j

Йосек
источник

Ответы:

18

Один важный вопрос, который вы должны принять во внимание: вы создаете библиотеку, которая используется кем-то другим, или вы создаете конечный продукт?

В первом случае SLF4j очень важен, потому что кто-то интегрирует вашу библиотеку в свое программное обеспечение, в котором уже есть регистрация, и было бы хорошо, если бы ваши классы просто использовали это.

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

Тим Бюте
источник
7

Не. Лучше потратьте время на реализацию полезных, ценных функций.

Мартин Викман
источник
6
-1: регистрация должна быть как можно лучше!
7
Так что log4j, который они используют, недостаточно полезен? Замена фреймворков только потому, что это возможно, - пустая трата времени. ОП даже заявил, что регистрация не была сломана.
Мартин Уикман,
1
Я бы не стал это голосовать. Мартин может быть прав. Если у Хосе есть какой-то готовый продукт (не библиотека, см. Мой ответ), он должен просто оставить его как есть и провести время где-нибудь еще ...
Тим Бют
2
@ Thorbjørn, нет, регистрация (как и функции в целом) должна быть настолько хорошей, насколько это необходимо . Если у них нет проблем с Log4J (между прочим, вы не упомянули ни одной из них, которая могла бы потребовать его замены), вероятно, есть лучшее использование их времени.
Петер Тёрёк
1
-1: безусловное предпочтение одного над другим имхо неверно. Просто попробуйте сопоставить этот ответ с условием ответа Тима Буэта.
Аджит Ганга
1

Если Log4J работает для вас, нет причин менять это. Если это не так, ищите альтернативу, которая делает то, что вам нужно, которая может быть или не быть slf4j.

Просто потому, что кто-то говорит, что что-то лучше, чем что-то другое, никогда не должно быть причиной для изменения всего вашего приложения (или вообще для принятия этого чего-то нового).

jwenting
источник
0

Slf4j - это API, который позволяет вам выбирать , использовать ли log4j, logback или ведение журнала jdk по умолчанию во время развертывания, вместо того, чтобы принимать решение во время компиляции (что происходит, когда вы кодируете непосредственно в log4j)

Slf4j также предоставляет конструкцию {}, которая может задерживать дорогостоящие вызовы toString (), полностью их избегая, если инструкция log не включена.

Затем вы можете выбрать двигатель позже.

Newtopian
источник