log4j - Arquitetura

Log4j API segue uma arquitetura em camadas onde cada camada fornece objetos diferentes para executar tarefas diferentes. Essa arquitetura em camadas torna o design flexível e fácil de estender no futuro.

Existem dois tipos de objetos disponíveis com a estrutura log4j.

  • Core Objects:Esses são objetos obrigatórios do framework. Eles são obrigados a usar a estrutura.

  • Support Objects:Esses são objetos opcionais da estrutura. Eles oferecem suporte a objetos centrais para realizar tarefas adicionais, mas importantes.

Objetos Centrais

Os objetos principais incluem os seguintes tipos de objetos -

Objeto Logger

A camada de nível superior é o Logger, que fornece o objeto Logger. O objeto Logger é responsável por capturar as informações de log e elas são armazenadas em uma hierarquia de namespace.

Objeto de Layout

A camada de layout fornece objetos que são usados ​​para formatar informações de registro em diferentes estilos. Ele fornece suporte para objetos anexadores antes de publicar informações de registro.

Objetos de layout desempenham um papel importante na publicação de informações de log de uma forma que seja legível e reutilizável.

Objeto Appender

Esta é uma camada de nível inferior que fornece objetos Appender. O objeto Appender é responsável por publicar informações de registro em vários destinos preferenciais, como banco de dados, arquivo, console, UNIX Syslog, etc.

O diagrama virtual a seguir mostra os componentes de uma estrutura log4J:

Objetos de Suporte

Existem outros objetos importantes na estrutura log4j que desempenham um papel vital na estrutura de registro:

Objeto de Nível

O objeto Level define a granularidade e a prioridade de qualquer informação de registro. Existem sete níveis de registro definidos na API: OFF, DEBUG, INFO, ERROR, WARN, FATAL e ALL.

Objeto de Filtro

O objeto Filtro é usado para analisar informações de registro e tomar decisões adicionais sobre se essas informações devem ser registradas ou não.

Um objeto Appender pode ter vários objetos Filtro associados a ele. Se as informações de registro forem passadas para um determinado objeto Appender, todos os objetos Filtro associados a esse Appender precisam aprovar as informações de registro antes que possam ser publicadas no destino anexado.

ObjectRenderer

O objeto ObjectRenderer é especializado em fornecer uma representação de String de diferentes objetos passados ​​para a estrutura de registro. Este objeto é usado por objetos Layout para preparar as informações finais de registro.

LogManager

O objeto LogManager gerencia a estrutura de registro. Ele é responsável por ler os parâmetros de configuração iniciais de um arquivo de configuração de todo o sistema ou de uma classe de configuração.