Eu quero usar logs no meu programa. Eu ouvi sobre java.util.logging , mas não sei por onde começar.
Existem exemplos do que posso fazer com o log? Como eu usaria o logon no meu próprio programa?
java
logging
java.util.logging
Renato Dinhani
fonte
fonte
Respostas:
java.util.logging
evita que você precise carregar mais um arquivo jar com seu aplicativo e funciona bem com um bom Formatador.Em geral, no topo de todas as aulas , você deve ter:
Em seguida, você pode apenas usar vários recursos da classe Logger .
Use
Level.FINE
para qualquer coisa que esteja depurando no nível superior do fluxo de execução:Use
Level.FINER
/Level.FINEST
dentro de loops e em locais onde nem sempre é necessário ver tantos detalhes ao depurar problemas básicos de fluxo:Use as versões parametrizadas dos recursos de registro para não gerar toneladas de lixo de concatenação de String que o GC terá que acompanhar.
Object[]
como acima é barato, na alocação de pilha normalmente.No tratamento de exceções, sempre registre os detalhes completos da exceção:
Eu sempre passo
ex.toString()
como mensagem aqui, porque quando "grep -n
" for "Exception
" nos arquivos de log, também posso ver a mensagem. Caso contrário, ele estará na próxima linha de saída gerada pelo despejo de pilha, e você precisará ter um RegEx mais avançado para corresponder a essa linha também, o que geralmente gera mais saída do que você precisa olhar.fonte
.fine()
método para iniciar sessão, mas eu não consigo fazer as mensagens exibir ...Deve declarar o logger como este:
portanto, se você refatorar o nome da sua classe, a seguir.
Escrevi um artigo sobre java logger com exemplos aqui .
fonte
Existem muitos exemplos e também de diferentes tipos de log. Dê uma olhada no pacote java.util.logging .
Código de exemplo:
Sem codificar o nome da classe :
fonte
Main.class.getSimpleName()
? Dessa forma, a ferramenta de refatoração irá alterá-la corretamente, se necessário, e, no entanto, não é tão desajeitada quanto a sua segunda solução.O SLF4J é uma fachada de registro melhor que o Apache Commons Logging (ACL). Possui pontes para outras estruturas de registro, fazendo chamadas diretas para o ACL, Log4J ou Java Util Logging através do SLF4J, para que você possa direcionar toda a saída para um arquivo de log, se desejar, com apenas um arquivo de configuração de log. Por que seu aplicativo usaria várias estruturas de log? Como as bibliotecas de terceiros que você usa, especialmente as mais antigas, provavelmente usam.
O SLF4J suporta várias implementações de log. Ele pode enviar tudo para o padrão, usar o Log4J ou o Logback (recomendado sobre o Log4J).
http://www.slf4j.org/
http://logback.qos.ch/
fonte
Eu usaria minlog , pessoalmente. É extremamente simples, pois a classe de log é de algumas centenas de linhas de código.
fonte
Eu sugeriria que você usasse o utilitário de log comum do Apache. É altamente escalável e suporta arquivos de log separados para diferentes registradores. Veja aqui .
fonte