SLF4J - Migrador

Se você tiver um projeto em Jakarta Commons Logging (JCL) ou, log4j ou, java.util.logging (JUL) e quiser converter esses projetos para SLF4J, pode fazer isso usando a ferramenta de migração fornecida na distribuição SLF4J.

Executando o migrador SLF4J

SLF4J é um arquivo jar único simples (slf4j-migrator.jar) e você pode executá-lo usando o comando java –jar.

Para executá-lo, no prompt de comando, navegue pelo diretório onde você tem este arquivo jar e execute o seguinte comando.

java -jar slf4j-migrator-1.8.0-beta2.jar
Starting SLF4J Migrator

Isso inicia o migrador e você pode ver um aplicativo Java autônomo como -

Conforme especificado na janela, você precisa verificar o tipo de migração que deseja fazer e selecionar o diretório do projeto e clicar no botão Migrar Projeto para SLF4J.

Essa ferramenta vai para os arquivos de origem que você fornece e executa modificações simples, como alterar as linhas de importação e declarações do registrador da estrutura de registro atual para SLF4j.

Exemplo

Por exemplo, vamos supor que temos uma amostra log4j(2) projeto no eclipse com um único arquivo da seguinte maneira -

import org.apache.log4j.Logger;
import java.io.*;
import java.sql.SQLException;
import java.util.*;

public class Sample {
   /* Get actual class name to be printed on */
   static Logger log = Logger.getLogger(Sample.class.getName());

   public static void main(String[] args)throws IOException,SQLException {
      log.debug("Hello this is a debug message");
      log.info("Hello this is an info message");
   }
}

Para migrar a amostra log4j(2) projeto para slf4j, precisamos verificar o botão de opção from log4j to slf4j e selecione o diretório do projeto e clique Exit migrar.

O migrador alterou o código acima da seguinte maneira. Aqui, se você observar que as instruções de importação e logger foram modificadas.

import org.slf4j.Logger;
import org.slf4j.LoggerFactory;
import java.io.*;
import java.sql.SQLException;
import java.util.*;

public class Sample {
   static Logger log = LoggerFactory.getLogger(Sample.class.getName());
   public static void main(String[] args)throws IOException,SQLException {
      log.debug("Hello this is a debug message");
      log.info("Hello this is an info message");
   }
}

Já que você já tem log4j.jar em seu projeto, você precisa adicionar slf4j-api.jar e slf4jlog12.jar arquivos para o projeto para executá-lo.

Limitações do SLF4JMigrator

A seguir estão as limitações do migrador SLF4J.

  • O Migrator não modificará scripts de construção como formiga, maven e ivy, você precisa fazer isso sozinho.

  • O Migrator não oferece suporte a mensagens diferentes do tipo String.

  • O Migrator não oferece suporte ao nível FATAL.

  • Ao trabalhar com log4j, o migrator não migra chamadas para PropertyConfigurator ou DomConfigurator.