log4j - Login em arquivos

Para gravar suas informações de registro em um arquivo, você teria que usar org.apache.log4j.FileAppender.

Configuração de FileAppender

FileAppender tem os seguintes parâmetros configuráveis:

Propriedade Descrição
InstantFlush Esse sinalizador é definido por padrão como verdadeiro, o que significa que o fluxo de saída para o arquivo é liberado com cada operação de acréscimo.
codificação É possível usar qualquer codificação de caracteres. Por padrão, é o esquema de codificação específico da plataforma.
limite O nível de limite para este anexador.
Nome do arquivo O nome do arquivo de log.
fileAppend Por padrão, é definido como verdadeiro, o que significa que as informações de registro estão sendo anexadas ao final do mesmo arquivo.
bufferedIO Este sinalizador indica se precisamos habilitar a gravação em buffer. Por padrão, é definido como falso.
tamanho do buffer Se a E / S com buffer estiver habilitada, indica o tamanho do buffer. Por padrão, é definido como 8kb.

A seguir está um exemplo de arquivo de configuração log4j.properties para FileAppender -

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

# Define the file appender
log4j.appender.FILE=org.apache.log4j.FileAppender

# Set the name of the file
log4j.appender.FILE.File=${log}/log.out

# Set the immediate flush to true (default)
log4j.appender.FILE.ImmediateFlush=true

# Set the threshold to debug mode
log4j.appender.FILE.Threshold=debug

# Set the append to false, overwrite
log4j.appender.FILE.Append=false

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

Se você deseja ter um arquivo de configuração XML equivalente ao acima log4j.properties arquivo, então aqui está o conteúdo:

<?xml version="1.0" encoding="UTF-8" ?>
<!DOCTYPE log4j:configuration SYSTEM "log4j.dtd">
<log4j:configuration>

<appender name="FILE" class="org.apache.log4j.FileAppender">

   <param name="file" value="${log}/log.out"/>
   <param name="immediateFlush" value="true"/>
   <param name="threshold" value="debug"/>
   <param name="append" value="false"/>
   
   <layout class="org.apache.log4j.PatternLayout">
      <param name="conversionPattern" value="%m%n"/>
   </layout>
</appender>

<logger name="log4j.rootLogger" additivity="false">
   <level value="DEBUG"/>
   <appender-ref ref="FILE"/>
</logger>

</log4j:configuration>

Você pode tentar log4j - Programa de amostra com a configuração acima.

Login em vários arquivos

Você pode querer gravar suas mensagens de log em vários arquivos por certos motivos, por exemplo, se o tamanho do arquivo atingiu um determinado limite.

Para gravar suas informações de registro em vários arquivos, você teria que usar org.apache.log4j.RollingFileAppender classe que estende o FileAppender classe e herda todas as suas propriedades.

Temos os seguintes parâmetros configuráveis, além dos mencionados acima para FileAppender -

Propriedade Descrição
maxFileSize Este é o tamanho crítico do arquivo acima do qual o arquivo será rolado. O valor padrão é 10 MB.
maxBackupIndex Esta propriedade denota o número de arquivos de backup a serem criados. O valor padrão é 1.

A seguir está um exemplo de arquivo de configuração log4j.properties para RollingFileAppender.

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

# Define the file appender
log4j.appender.FILE=org.apache.log4j.RollingFileAppender

# Set the name of the file
log4j.appender.FILE.File=${log}/log.out

# Set the immediate flush to true (default)
log4j.appender.FILE.ImmediateFlush=true

# Set the threshold to debug mode
log4j.appender.FILE.Threshold=debug

# Set the append to false, should not overwrite
log4j.appender.FILE.Append=true

# Set the maximum file size before rollover
log4j.appender.FILE.MaxFileSize=5MB

# Set the the backup index
log4j.appender.FILE.MaxBackupIndex=2

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

Se você deseja ter um arquivo de configuração XML, você pode gerar o mesmo mencionado na seção inicial e adicionar apenas parâmetros adicionais relacionados a RollingFileAppender.

Este exemplo de configuração demonstra que o tamanho máximo permitido de cada arquivo de log é 5 MB. Ao exceder o tamanho máximo, um novo arquivo de log será criado. Desde amaxBackupIndex é definido como 2, uma vez que o segundo arquivo de log atinge o tamanho máximo, o primeiro arquivo de log será apagado e depois disso, todas as informações de log serão revertidas para o primeiro arquivo de log.

Você pode tentar log4j - Programa de amostra com a configuração acima.

Geração de arquivo de log diário

Pode ser necessário gerar seus arquivos de log diariamente para manter um registro limpo de suas informações de log.

Para gravar suas informações de registro em arquivos diariamente, você teria que usar org.apache.log4j.DailyRollingFileAppender classe que estende o FileAppender classe e herda todas as suas propriedades.

Há apenas um parâmetro configurável importante além dos mencionados acima para FileAppender:

Propriedade Descrição
DatePattern Isso indica quando rolar o arquivo e a convenção de nomenclatura a ser seguida. Por padrão, a rolagem é realizada à meia-noite de cada dia.

DatePattern controla a programação de rollover usando um dos seguintes padrões:

DatePattern Descrição
'.' aaaa-MM Role no final de cada mês e no início do mês seguinte.
'.' aaaa-MM-dd Role à meia-noite todos os dias. Este é o valor padrão.
'.' aaaa-MM-dd-a Role ao meio-dia e meia-noite de cada dia.
'.' aaaa-MM-dd-HH Role no início de cada hora.
'.' aaaa-MM-dd-HH-mm Role a cada minuto.
'.' yyyy-ww Passe o mouse no primeiro dia de cada semana, dependendo do local.

A seguir está um exemplo de arquivo de configuração log4j.properties para gerar arquivos de log ao meio-dia e meia-noite de cada dia.

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

# Define the file appender
log4j.appender.FILE=org.apache.log4j.DailyRollingFileAppender

# Set the name of the file
log4j.appender.FILE.File=${log}/log.out

# Set the immediate flush to true (default)
log4j.appender.FILE.ImmediateFlush=true

# Set the threshold to debug mode
log4j.appender.FILE.Threshold=debug

# Set the append to false, should not overwrite
log4j.appender.FILE.Append=true

# Set the DatePattern
log4j.appender.FILE.DatePattern='.' yyyy-MM-dd-a

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

Se você deseja ter um arquivo de configuração XML, você pode gerar o mesmo mencionado na seção inicial e adicionar apenas parâmetros adicionais relacionados a DailyRollingFileAppender.

Você pode tentar log4j - Programa de amostra com a configuração acima.