CodeGym/Cursos Java/Módulo 3/Anexadores em Log4j

Anexadores em Log4j

Disponível

Lista de anexadores

O registrador permite salvar dados em vários arquivos de uma só vez. Esses fluxos de dados de saída são chamados de anexadores (de anexar). Existem alguns anexos padrão, portanto, abordaremos apenas os mais populares:

Anexadores Descrição
1 Console Imprime dados no console
2 Arquivo Envia dados para um arquivo
3 DailyRollingFile Envia dados para um arquivo, o arquivo é sobrescrito ciclicamente
4 assíncrono Permite gravar dados em outro anexador de forma assíncrona
5 soquete Grava dados em um soquete específico
6 JDBC Grava mensagens no banco de dados usando o protocolo JDBC
7 JPA Grava mensagens no banco de dados usando o protocolo JPA
8 HTTP Envia eventos via protocolo HTTP para um servidor remoto
9 SMTP Armazena mensagens em um buffer e as envia como um e-mail

Uma boa documentação para todos os anexadores está em seu site oficial

E a seguir consideraremos os mais populares e simples deles.

ConsoleAppender

O anexador mais simples éConsoleApender . Como você deve ter adivinhado, ele simplesmente escreve suas mensagens no console. Tem vários parâmetros interessantes para nós:

Atributos
1 nome Nome do anexo
2 filtro Permite filtrar algumas mensagens
3 disposição Especifica a formatação das mensagens quando a saída
4 alvo Especifica onde escrever: SYTEM_OUTouSYSTEM_ERR

É muito fácil configurá-lo:

<?xml version="1.0" encoding="UTF-8"?>
<Configuration status="warn" name="MyApp" packages="">
<Appenders>
    <Console name="STDOUT" target="SYSTEM_OUT">
    <PatternLayout pattern="%m%n"/>
    </Console>
</Appenders>
  <Loggers>
    <Root level="error">
    <AppenderRef ref="STDOUT"/>
    </Root>
</Loggers>
</Configuration>

FileAppender

O anexador mais útil éFileAppender . Ao contrário, ConsoleAppenderele escreve suas mensagens em um arquivo. O que é muito útil quando seu aplicativo está sendo executado em algum lugar do servidor. Tem muitos parâmetros, porque ele deve ser capaz de gravar arquivos em diferentes sistemas operacionais.

Mas vamos considerar apenas os mais populares deles.

1 nome Especifica o nome do anexador
2 filtro Permite filtrar algumas mensagens
3 disposição Especifica a formatação das mensagens quando a saída
4 nome do arquivo Especifica o nome do arquivo onde escrever mensagens
5 acrescentar Se true, as mensagens serão adicionadas ao log antigo, se false- o arquivo de log será recriado toda vez que o aplicativo for iniciado.
6 tamanho do buffer Define o tamanho do buffer em bytes
7 descarga imediata Se true, cada mensagem é realmente gravada no disco imediatamente (sem um buffer). O log começa a funcionar lentamente, mas isso evita que você perca dados quando o programa trava.

Você já sabe como trabalhar bem com arquivos, então essas configurações não são novidade para você. A configuração desse logger é ainda mais fácil do que um logger de console:

<?xml version="1.0" encoding="UTF-8"?>
<Configuration status="warn" name="MyApp" packages="">
<Appenders>
    <File name="MyFile" fileName="logs/app.log">
    <PatternLayout>
        <Pattern>%d %p %c{1.} [%t] %m%n</Pattern>
    </PatternLayout>
    </File>
</Appenders>
<Loggers>
    <Root level="error">
    <AppenderRef ref="MyFile"/>
    </Root>
</Loggers>
</Configuration>

RollingFileAppender

O appender mais popular éRollingFileAppender . Ao contrário FileAppender, permite dividir o log em vários arquivos pequenos. Isso é muito importante para toras grandes. Além disso, permite definir regras sobre o que fazer com os arquivos antigos depois que os novos começaram a ser gravados.

E este appender tem quase cem configurações diferentes. Você pode saber mais sobre eles no link .

Considere os atributos mais populares deste appender:

Atributos
1 nome Especifica o nome do anexador
2 filtro Permite filtrar algumas mensagens
3 disposição Especifica a formatação das mensagens quando a saída
4 nome do arquivo Especifica o nome do arquivo onde escrever mensagens
5 padrão de arquivo Especifica um padrão de nomenclatura para arquivos compactados que não são mais gravados
6 política Especifica a condição em que o arquivo deve começar a ser substituído
7 estratégia Descreve o que fazer com arquivos antigos: arquivo, histórico por quantos dias manter, etc.

Aqui está um bom exemplo:

<Configuration status="warn" name="MyApp" packages="">
  <Appenders>
    <RollingFile name="RollingFile" fileName="logs/app.log" filePattern="logs/app-%d{MM-dd-yyyy}-%i.log.gz">
    <PatternLayout>
        <Pattern>%d %p %c{1.} [%t] %m%n</Pattern>
    </PatternLayout>
    <Policies>
        <TimeBasedTriggeringPolicy />
        <SizeBasedTriggeringPolicy size="250 MB"/>
    </Policies>
    </RollingFile>
  </Appenders>
  <Loggers>
    <Root level="error">
    <AppenderRef ref="RollingFile"/>
    </Root>
  </Loggers>
</Configuration>

O parâmetro filePatternespecifica um modelo para arquivos de logs antigos. Existem também dois, quando acionados, um novo arquivo será gravado:

  • TimeBasedTriggeringPolicy– funcionará se um novo dia começar (a data atual mudar)
  • SizeBasedTriggeringPolicy– funcionará se o tamanho do arquivo atingir 250 MB
Comentários
  • Populares
  • Novas
  • Antigas
Você precisa acessar para deixar um comentário
Esta página ainda não tem nenhum comentário