Eu quero utilizar uma API/Framework para log, especificamente log em uma aplicação web.
Vi muito material e recomendação para utilização do Log4j, realmente vale a pena? queria opiniões mais recentes aqui do fórum, visto que as coisas que eu vi era de 3 anos atrás.
é extremamente raro alguém usar outra api para log… eu mesmo nunca vi.
existe uma api de log na api padrão mas pessoalmente nunca vi um projeto utilizando-a…
J
jurado
A minha sugestão é utilizar uma api agregadora como slf4j. Desta forma é muito simples alternar entre diversas outras (como a log4j inclusive).
Daí basta usar assim:
privatefinalLoggerlogger=LoggerFactory.getLogger(getClass());// e nos seus metodostry{logger.trace("mensagem com parametro {}",parametro);logger.debug("mensagem sem parametro");logger.info("mensagem {} com {} muitos {} parametros {}",newObject[]{parametro1,parametro2,parametro3,parametro4});}catch(Exceptione){logger.error("mensagem com stack trace",e);}
Você sabe dizer se a API padrão do java suporta MDC ? Para mim essa é a única coisa que torna libraries como log4j interessantes.
J
jurado
Sinceramente eu acho a vale mais a pena aprender a utilizar uma ferramenta de gestão de dependências do que ficar limitado aos recursos nativos q os pacotes oferecem… É por causa disso q muitas vezes vemos por aí projetos novos que continuam amarrados a tipos de design duvidoso como java.util.Date e java.util.Calendar.
De uma estudada no maven, por exemplo. E nunca mais se preocupe com jars externos
V
ViniGodoy
Creio que não.
V
ViniGodoy
jurado:
Sinceramente eu acho a vale mais a pena aprender a utilizar uma ferramenta de gestão de dependências do que ficar limitado aos recursos nativos q os pacotes oferecem… É por causa disso q muitas vezes vemos por aí projetos novos que continuam amarrados a tipos de design duvidoso como java.util.Date e java.util.Calendar.
De uma estudada no maven, por exemplo. E nunca mais se preocupe com jars externos :)
Eu conheço bem o maven.
Mas não acho a java logging api de design duvidoso. É realmente uma API simples, desenhada para resolver problemas de log mais simples.
Como meu foco é geralmente aplicações desktop, dificilmente precisei de mais do que isso.
Não acho que a api do java substitua a log4j no caso de log em servidor web.
E, claro, se precisa de datas, sou o primeiro a falar contra o Calendar e o Date.
C
calel
Também utilizo a log4j.
Mas li recentemente q a nova versão da logback estava mais rapida, não cheguei a testar, mas a propaganda é bem interessante, segue o link para os interessados http://logback.qos.ch/reasonsToSwitch.html
ela também é baseada na api SLF4J o que como o jurado falou facilita a migração entre apis de log de acordo com a necessidade.
J
jurado
Concordo, Vinni. Já usei bastante a logging api. Na verdade comentei apenas o argumento de que ele não necessita de jars externos.
Tenho visto ultimamente (especialmente em alguns projetos em outras equipes aqui no trabalho) uma certa “preguiça” em aprender novas ferramentas (como joda-time e log4j) com um argumento muito parecido com “não gosto de poluir o projeto com outros jars”. Na grande maioria dos casos isso nao justifica a perda de design ou até performance que essas ferramentas podem agregar.
Para aplicações simples, java.util.logging é muito mais q suficiente!