com.mhavila.cookbook.log
Class RecipeLog4j
java.lang.Object
com.mhavila.cookbook.log.RecipeLog4j
public class RecipeLog4j
- extends Object
- Receita:
- Gerar informação de log usando o Apache Log4j.
Log4j:
Instalação:
- Faça o download da versão mais recente do Apache Log4j.
A numeração da versão é referenciada aqui como VERSAO.
Esta receita foi testada com as versões 1.2.8 e 1.2.12 do Log4j.
- Descompacte o pacote
jakarta-log4j-VERSAO.tar.gz
ou jakarta-log4j-VERSAO.zip.
Dentro do destino que você escolher no disco, será criada uma pasta
jakarta-log4j-VERSAO.
A localização desta pasta criada é refenciada aqui como LOG4J_HOME.
- Em seu projeto, copie e adicione ao CLASSPATH o arquivo
LOG4J_HOME/dist/lib/jog4j-VERSAO.jar.
- Adicione aos imports das classes que usarão o Log4j as devidas classes em
org.apache.log4j.*.
Entrada (origem/geração/escrita) - Logger:
- Níveis de prioridade do log: (maior, tudo desativado) OFF
>= FATAL > ERROR > WARN > INFO > DEBUG
>= ALL (menor, tudo ativado).
- Principais métodos estáticos da classe Logger:
getLogger(classe),
getLogger(nome).
- Métodos de escrita de log por nível de prioridade,
recebendo uma mensagem (Object) e, opcionalmente,
também uma exceção (Throwable) para incluir sua pilha de trace:
fatal(...),
error(...),
warn(...),
info(...),
debug(...).
- Método genérico de escrita de log:
log(nivel, msg),
log(nivel, msg, excecao).
- Seleção do nível de prioridade mínimo considerado pelo gerador:
setLevel(nivel).
O gerador raiz (root logger), por padrão, tem inicialmente atribuído
Level.DEBUG.
Saída (destino/gravação/envio/exibição) - Appender:
Formatação - Layout:
- Tipos de formatação:
TTCCLayout (time, thread, category, context),
HTMLLayout (tabela HTML),
PatternLayout,
SimpleLayout,
XMLLayout.
PatternLayout:
| Conversor |
Resultado |
Extras |
| %c |
Categoria (nome do gerador) |
Limitar nº componentes a partir da direita: %c{n} |
| %d |
Data-hora |
Rápidos: %d{ISO8601}, %d{DATE}, %d{ABSOLUTE} |
| %m |
Mensagem fornecida |
|
| %n |
Separador de linha |
|
| %p |
Prioridade |
|
| %r |
Milisegundos |
|
| %t |
Thread |
|
| %% |
Símbolo % (porcento) |
|
Formatos com informação da origem do evento de log.
Muito lentos, devem ser usados apenas em casos restritos de depuração:
| Conversor |
Resultado |
Extras |
| %l |
Localização da chamada |
|
| %C |
Classe |
Limitar nº componentes (pacotes + classe) a partir da direita: %C{n} |
| %F |
Arquivo fonte |
|
| %L |
Nº linha no fonte |
|
| %M |
Método |
|
Configuração:
- Log4j é totalmente configurável programaticamente, mas o meio mais
flexível e recomendado é usando um arquivo de configuração e o mecanismo
de inicialização padrão.
- O arquivo de configuração pode ser em formato de propriedades Java (chave=valor)
ou XML (extensão .xml).
log4j.configuration: propriedade de sistema que define o nome do
arquivo de configuração (procurado no classpath) ou o URL de acesso a ele.
Padrão: log4j.properties.
Exemplo: -Dlog4j.configuration=meuarq.txt
- Configuradores:
BasicConfigurator (programático simples),
PropertyConfigurator (arquivo de propriedades),
DOMConfigurator (arquivo XML).
- Exemplo de código:
- Author:
- Márcio d'Ávila (www.mhavila.com)
- See Also:
Logger,
Level,
Appender,
Layout,
PropertyConfigurator.doConfigure(String, LoggerRepository)
| Methods inherited from class java.lang.Object |
clone, equals, finalize, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait |
RecipeLog4j
public RecipeLog4j()
main
public static void main(String[] args)