Visão geral

Para enviar mensagens do sistema (saída de log), o servidor PPM usa a interface Java padrão log4J. log4J é uma estrutura flexível para controlar a saída de mensagens de aplicativos Java usando várias mídias (canais de saída). A interface log4J é configurada em um arquivo XML ou em um arquivo de propriedade. Ela consiste em três componentes: agente de log (coleta), layout (formatação) e appender (saída)

O PPM extrai a configuração log4J de um arquivo de propriedade.

Agente de log

O aplicativo Java passa suas mensagens para um determinado agente de log (coletor) que as processa em função de seu tipo. As mensagens podem ser desses tipos (níveis de log): ALL, TRACE, INFO, WARN, ERROR, FATAL, OFF.

Nível de log

Descrição

ALL

Ativa todos os logs.

TRACE

Mensagens de tempo de execução muito detalhadas, geralmente combinadas com a saída de estados de erro completos do aplicativo

DEBUG

Mensagem de tempo de execução abrangente, descrevendo geralmente o estado interno do aplicativo

INFO

Informações ou avisos gerais

WARN

Informações sobre estados de aplicativos que não são críticos para o tempo de execução, por exemplo, configurações ausentes ou incorretas 

ERROR

Erros que levam frequentemente ao cancelamento do componente ativo

FATAL

Erros que levam ao cancelamento do aplicativo, por exemplo, falta de recursos 

OFF

Sem saída de log

As linhas seguintes definem um agente de log no arquivo de configuração log4J:

<logger name>=<log level>,<appender name 1>, ... , <Appender name n>

Os nomes do agente de log fazem distinção entre maiúsculas e minúsculas. Os nomes formam uma estrutura hierárquica. O elemento raiz é o agente de log de raiz. Os níveis de hierarquia estão separados por um ponto (.). O nível de hierarquia superior transmite sua configuração para o nível inferior, que é então substituído por configurações específicas.

A tabela abaixo ilustra a hierarquia de herança:

Nome do agente de log

Nível de log associado

Nível de log herdado

log4j.rootLogger

INFO

nenhum

log4j.logger.LOG

DEBUG

INFO

log4j.logger.LOG.SRV

ERROR

INFO

Appender

O agente de log passa as mensagens para os appenders (destinatários) que geram as mensagens de determinado forma (layout). Os appenders diferem em termos de saída, por exemplo:

Exemplo de appender do PPM

Descrição

console

As mensagens são enviadas para a console

logFile

As mensagens são gravadas em um arquivo

errorFile

As mensagens de erro são gravadas em um arquivo

As linhas seguintes definem um agente de log no arquivo de configuração log4J:

log4j.appender.<name>=<class name>

Pode especificar vários appenders para um agente de log. Todos os appenders de um agente de log geram as mensagens com base em sua configuração.

Alguns usuários escrevem as mensagens no sistema de log do sistema operacional, enviam-nas como e-mails ou enviam-nas pela rede para um determinado servidor de log.

Layout

Pode usar estilos para especificar o formato de saída. Esses estilos são especificados para o appender relevante. Os espaços reservados chave para um estilo incluem:

Espaço reservado

Descrição

%c

Categoria/agente de log (corresponde ao módulo do PPM)

%C

Nome de classe, totalmente qualificado

%d

Data, por exemplo, %d{HH:mm:ss,SSS} 

%F

Nome do arquivo

%L

Número de linha

%m

A própria mensagem

%M

Nome do método

%n

Quebra de linha

%p

Prioridade, nível (INFO, WARN, ERROR, etc.)

%t

Nome do encadeamento

%throwable{0}

A saída Stacktrace é suprimida.

Exemplo

O estilo [%t] %-5p %C - %m%n gera a seguinte saída:

[main] INFO org.apache.log4j.Action - O processo foi iniciado