log4j - Configuração

O capítulo anterior explicou os componentes principais do log4j. Este capítulo explica como você pode configurar os componentes principais usando um arquivo de configuração. Configurar log4j envolve atribuir o Nível, definir o Appender e especificar objetos de Layout em um arquivo de configuração.

o log4j.propertiesfile é um arquivo de configuração log4j que mantém as propriedades em pares chave-valor. Por padrão, o LogManager procura um arquivo chamadolog4j.properties no CLASSPATH.

  • O nível do logger raiz é definido como DEBUG. oDEBUG anexa o appender denominado X a ele.

  • Defina o anexador denominado X para ser um anexador válido.

  • Defina o layout do anexador X.

Sintaxe log4j.properties:

A seguir está a sintaxe do arquivo log4j.properties para um appender X:

# Define the root logger with appender X
log4j.rootLogger = DEBUG, X

# Set the appender named X to be a File appender
log4j.appender.X=org.apache.log4j.FileAppender

# Define the layout for X appender
log4j.appender.X.layout=org.apache.log4j.PatternLayout
log4j.appender.X.layout.conversionPattern=%m%n

log4j.properties Exemplo

Usando a sintaxe acima, definimos o seguinte em log4j.properties Arquivo:

  • O nível do logger raiz é definido como DEBUG, O DEBUG appender nomeado FILE para isso.

  • O appender FILE é definido como org.apache.log4j.FileAppender. Ele grava em um arquivo chamadolog.out localizado no log diretório.

  • O padrão de layout definido é % m% n , o que significa que a mensagem de registro impressa será seguida por um caractere de nova linha.

# Define the root logger with appender file
log4j.rootLogger = DEBUG, FILE

# Define the file appender
log4j.appender.FILE=org.apache.log4j.FileAppender
log4j.appender.FILE.File=${log}/log.out

# Define the layout for file appender
log4j.appender.FILE.layout=org.apache.log4j.PatternLayout
log4j.appender.FILE.layout.conversionPattern=%m%n

É importante observar que log4j suporta substituição de variável no estilo UNIX, como $ {variableName}.

Nível de depuração

Usamos DEBUG com ambos os appenders. Todas as opções possíveis são:

  • TRACE
  • DEBUG
  • INFO
  • WARN
  • ERROR
  • FATAL
  • ALL

Esses níveis são explicados posteriormente neste tutorial.

Anexos

Apache log4j fornece objetos Appender que são os principais responsáveis ​​por imprimir mensagens de log para destinos diferentes, como consoles, arquivos, sockets, logs de eventos NT, etc.

Cada objeto Appender possui propriedades diferentes associadas a ele, e essas propriedades indicam o comportamento desse objeto.

Propriedade Descrição
layout O Appender usa os objetos Layout e o padrão de conversão associado a eles para formatar as informações de registro.
alvo O destino pode ser um console, um arquivo ou outro item, dependendo do anexador.
nível O nível é necessário para controlar a filtragem das mensagens de log.
limite O Appender pode ter um nível de limite associado a ele independente do nível do registrador. O Appender ignora quaisquer mensagens de log que tenham um nível inferior ao nível de limite.
filtro Os objetos de filtro podem analisar informações de log além da correspondência de nível e decidir se as solicitações de log devem ser tratadas por um Appender específico ou ignoradas.

Podemos adicionar um objeto Appender a um Logger incluindo a seguinte configuração no arquivo de configuração com o seguinte método:

log4j.logger.[logger-name]=level, appender1,appender..n

Você pode escrever a mesma configuração no formato XML da seguinte maneira:

<logger name="com.apress.logging.log4j" additivity="false">
   <appender-ref ref="appender1"/>
   <appender-ref ref="appender2"/>
</logger>

Se você deseja adicionar o objeto Appender dentro de seu programa, pode usar o seguinte método:

public void addAppender(Appender appender);

O método addAppender () adiciona um Appender ao objeto Logger. Como a configuração de exemplo demonstra, é possível adicionar muitos objetos Appender a um registrador em uma lista separada por vírgulas, cada um imprimindo informações de registro para destinos separados.

Usamos apenas um appender FileAppender em nosso exemplo acima. Todas as opções de appender possíveis são:

  • AppenderSkeleton
  • AsyncAppender
  • ConsoleAppender
  • DailyRollingFileAppender
  • ExternallyRolledFileAppender
  • FileAppender
  • JDBCAppender
  • JMSAppender
  • LF5Appender
  • NTEventLogAppender
  • NullAppender
  • RollingFileAppender
  • SMTPAppender
  • SocketAppender
  • SocketHubAppender
  • SyslogAppender
  • TelnetAppender
  • WriterAppender

Cobriríamos FileAppender em Logging in Files e JDBC Appender seria abordado em Logging in Database .

Layout

Usamos PatternLayout com nosso appender. Todas as opções possíveis são:

  • DateLayout
  • HTMLLayout
  • PatternLayout
  • SimpleLayout
  • XMLLayout

Usando HTMLLayout e XMLLayout, você pode gerar log em HTML e também em formato XML.

Formatação de Layout

Você aprenderia como formatar uma mensagem de registro no capítulo: Formatação de registro .