Preciso atualizar o log4j para slf4j [fechado]

10

Estamos analisando nosso aplicativo da web JEE para alguma refatoração planejada e uma das sugestões é substituir log4jpor logbackouslf4j

A equipe não tem certeza se devemos fazer isso - porque atualmente queremos seguir se não estiver quebrado, não conserte nesta área.

Edit: Eu não estou pedindo uma comparação das estruturas de log, mas se é um elemento de refatoração valioso para alterar a estrutura quando estivermos muito felizes com o log4j

JoseK
fonte

Respostas:

18

Uma pergunta importante a ser levada em consideração: você cria uma biblioteca que é usada por outra pessoa ou o produto final?

No primeiro caso, o SLF4j é muito importante, porque alguém integrará sua biblioteca em seu software que já possui registro em vigor e seria bom se suas classes o usassem.

No segundo caso, eu diria que você pode simplesmente deixar como está. Talvez pense em usar o slf4j no próximo projeto.

Tim Büthe
fonte
7

Não. É melhor gastar seu tempo implementando recursos úteis e valiosos.

Martin Wickman
fonte
6
-1: o registro precisa ser o melhor possível!
7
Então log4j, que eles usam, não é útil o suficiente? Substituir estruturas apenas porque é possível, é uma perda de tempo. O OP até declarou que o log não estava quebrado.
Martin Wickman
11
Eu não votaria nisso. Martin pode estar certo. Se José tem algum produto acabado (não uma biblioteca, ver minha resposta), ele deve deixá-lo como está e tempo gasto em outro lugar ...
Tim Buthe
2
@ Thorbjørn, não, o registro (como recursos em geral) precisa ser tão bom quanto necessário . Se eles não tiverem problemas com o Log4J (você também não citou nenhum deles, o que tornaria necessário substituí-lo), provavelmente existem usos melhores do seu tempo.
Péter Török
11
-1: preferência incondicional de um sobre o outro é IMHO errado. Apenas tente contrastar esta resposta com a condicionalidade da resposta de Tim Bueth.
Ajeet Ganga
1

Se o Log4J funcionar para você, não há razão para mudar isso. Caso contrário, procure uma alternativa que faça o que você precisa, que pode ou não ser slf4j.

Só porque alguém diz que algo é melhor do que qualquer outra coisa nunca deve ser uma razão para alterar toda a sua aplicação (ou adotar algo novo).

jwenting
fonte
0

Slf4j é uma API que permite escolher se deseja usar log4j, logback ou o log jdk padrão no momento da implantação, em vez de decidir no momento da compilação (que é o que acontece quando você codifica diretamente no log4j)

O Slf4j também fornece a construção {} que pode atrasar chamadas caras para toString (), evitando-as inteiramente se a instrução de log não estiver ativada.

Você pode escolher o mecanismo posteriormente.

Newtopian
fonte