Diferença entre Slf4j e Log4j

Se você é um desenvolvedor, você escreveu uma declaração de log frequentemente em sua carreira. Neste artigo, abordamos dois dos mecanismos de log mais usados ​​- Log4j e Slf4j. Antes de começarmos, seria bom entender algumas noções básicas sobre a parte O QUE e POR QUE do registro. Neste tópico, vamos aprender sobre Slf4j vs Log4j.

SLF4J: É um termo abreviado de fachada de registro simples para Java que permite que os usuários conectem o sistema de registro desejado durante a implementação dos aplicativos de software. Observe também que usamos o termo padrão de fachada, que nada mais é do que um padrão de design de software comum de ser usado no OOP.

Log4J: É uma estrutura de registro (por exemplo, um aplicativo de construção semi-confiável), confiável, flexível e rápida. Os registros podem ser categorizados em vários níveis, como rastreamento, depuração, informações, erro, fatal e vários outros modos. Esses detalhes de registro podem ser compartilhados em diferentes plataformas, como outros bancos de dados e consoles de arquivos.

O QUE - ARQUIVOS DE LOG pode ser considerado como um histórico de rastreamento de todas as atividades com seus resultados. Eles também mantêm todos os tipos de detalhes de interação que um usuário teve com o sistema, seja detalhes de transação, informações ou também se algo der errado (quero dizer se a atividade específica não executa a execução).

POR QUE - precisamos rastrear os problemas, declarações sobre o carregamento de funções, o tipo de parâmetros que passamos, mensagens de aviso ou notificações para entender melhor o aplicativo na fase de desenvolvimento e também pode ser usado para referência futura.

Comparação cara a cara entre Slf4j vs Log4j (Infográficos)

Abaixo estão as 5 principais diferenças entre Slf4j e Log4j

Principais diferenças entre Slf4j e Log4j

Vamos discutir algumas das principais diferenças entre Slf4j e Log4j:

1. Ssl4j é apenas uma abstração ou fornece uma camada de abstração e não a estamos usando, enquanto o Log4j é uma estrutura de log que possui implementações diferentes.

2. A fala dos componentes nesses dois Sl4j não possui nenhum componente, pois possui uma lista de implementações como logback ou NOPloggers e várias outras enquanto que, no caso do log4j, possui 3 componentes principais, a saber:

  • Registradores: capturam as informações de registro durante o tempo de execução
  • Anexadores: eles atuam como saídas ao publicar as informações de registro em diferentes destinos.
  • Layouts: eles oferecem opção de formatação em vários estilos.

3. Falando de preferências, gostaríamos de dizer que não há comparação direta entre ssl4j e log4j, mas pode haver preferências com base em situações particulares e quando usar uma delas, segue abaixo da lista -

  • O Ssl4j é fácil de usar como API 'e simples e direto
  • O Ssl4j suporta todas as estruturas de log cruciais
  • A distribuição Ssl4j é fornecida com ligações para diferentes registradores, como registradores simples, NOPlogger, Log4jloggeradapter, JDK14loggeradapter e JCLLoggerAdapter.
  • Ssl4j gerencia as dependências do Maven
  • É amplamente utilizado porque está perfeitamente documentado com todos os if's, mas com consideração
  • Ssl4j suporta o mapeamento de contexto de diagnóstico enquanto armazena as informações de contexto
  • Log4j é considerado seguro para a prática de registro
  • É altamente otimizado para performances
  • O Log4j suporta mais de um appender (um componente do log4j) por criador de logs
  • É amplamente utilizado em todo o setor e define os parâmetros de internalização.
  • O Log4j suporta vários níveis de registro, como WARN, INFO e ERROR.
  • O formato e o destino do registro podem ser alterados facilmente, alterando a classe de layout e implementando a interface do appender.

4. O Slf4j pode ser configurado para usar o Log4j como back-end de log para trabalhar juntos, mas a conversão posterior não é possível.

Tabela de comparação Slf4j vs Log4j

Vamos ver mais algumas diferenças entre Slf4j e Log4j

TítuloSlf4jLog4j
MigraçãoO Slf4j é compatível com todas as suas versões anteriores. Um usuário pode migrar facilmente do slf4j para qualquer versão sem nenhum problema.Existem vários obstáculos, pois é preciso cuidar da migração. Falando no Log4j2, a compatibilidade com versões anteriores não é possível.
Última versãoO Ssl4j lançou sua versão mais recente e estável do 1.7A versão 2.0.8 é a edição mais recente.
Escolha de preferênciasBibliotecas e componentes incorporados devem preferir o ssl4j para suas necessidades de log porque essas bibliotecas não têm a opção de estrutura de log no usuário final.Sempre que você precisar de uma abordagem mais dinâmica e flexível, que ofereça mais recursos.
Pré-requisitosPrimeiro, os pré-requisitos variam de acordo com as versões. As versões posteriores têm alguns requisitos diferentes quando comparadas às suas contrapartes mais recentes. Vamos ver alguns desses requisitos -

  • slf4j-nop: JDK 1.5
  • slf4j-simple: JDK 1.5
  • slf4j-log4j12: JDK 1.5, mais quaisquer outras dependências da biblioteca requeridas pelo app4 log4j em uso
  • slf4j-jdk14: JDK 1.5 ou posterior
  • logback-classic: JDK 1.5 ou posterior
Existem várias dependências baseadas no requisito, mas as poucas importantes e geralmente consideradas são mencionadas abaixo -

  • log4j 1.2.8 e versões anteriores são compatíveis com o JDK 1.1.x, enquanto a versão posterior do log4j 1.2 é compatível com o JDK 1.2 e posterior
  • O teste log4j depende da estrutura de teste JUnit
  • o org.aache.log4j requer API JMS e JNDI
APIsAlgumas APIs comuns do slf4j são -

  • jcl-over-slf4j
  • jul-to-slf4j (para java.util.logging)
  • Log4j-over-slf4j (API compatível com log4j)
Algumas das APIs do log4j são -

  • Category.getParent ()
  • Category.setLevel ()
  • Category.setPriority ()
  • Category.getAdditivity ()
  • Category.setAdditivity ()
  • Category.getResourceBundle ()
  • BasicConfigurator.configure ()

Conclusão

O registro é uma parte essencial da solução de problemas do aplicativo, é um parâmetro de desenvolvimento para encontrar problemas durante o ciclo de desenvolvimento. Sobre o registro, testemunhamos dois atores cruciais, como CLF4J e LOG4J. Também vimos o que são SLF4J e LOG4J, quais são as possibilidades que eles possuem e como podem ser usados. Essencialmente, eles são usados ​​pelos desenvolvedores para fazer logon e têm algumas diretrizes de uso específicas

Listamos um diagrama de blocos de como esses dois se encaixam no cenário de log -

Artigos recomendados

Este é um guia para Slf4j vs Log4j. Aqui discutimos as principais diferenças entre Slf4j e Log4j com infográficos e tabela de comparação. Você também pode consultar os seguintes artigos para saber mais -

  1. Ansible vs Puppet
  2. Ansible vs Puppet vs Chef
  3. Debian vs Arch
  4. Kubernetes vs Docker