SLF4J - Мигратор

Если у вас есть проект в Jakarta Commons Logging (JCL) или, log4j или java.util.logging (JUL), и вы хотите преобразовать эти проекты в SLF4J, вы можете сделать это с помощью инструмента миграции, предоставленного в дистрибутиве SLF4J.

Запуск SLF4J Migrator

SLF4J - это простой одиночный файл jar (slf4j-migrator.jar), и вы можете запустить его с помощью команды java –jar.

Чтобы запустить его, в командной строке просмотрите каталог, в котором находится этот файл jar, и выполните следующую команду.

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

Это запускает мигратор, и вы можете увидеть автономное приложение Java как -

Как указано в окне, вам необходимо проверить тип миграции, которую вы хотите выполнить, выбрать каталог проекта и нажать кнопку «Перенести проект на SLF4J».

Этот инструмент переходит к предоставленным вами исходным файлам и выполняет простые модификации, такие как изменение строк импорта и объявлений регистратора с текущей платформы ведения журнала на SLF4j.

пример

Например, предположим, что у нас есть образец log4j(2) проект в eclipse с одним файлом следующим образом:

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");
   }
}

Чтобы перенести образец log4j(2) проект в slf4j, нам нужно установить переключатель from log4j to slf4j и выберите каталог проекта и нажмите Exit мигрировать.

Мигратор изменил приведенный выше код следующим образом. Здесь, если вы заметили, что операторы import и logger были изменены.

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");
   }
}

Поскольку у вас уже есть log4j.jar в вашем проекте вам нужно добавить slf4j-api.jar и slf4jlog12.jar файлы в проект для его выполнения.

Ограничения SLF4JMigrator

Ниже приведены ограничения мигратора SLF4J.

  • Migrator не будет изменять скрипты сборки, такие как ant, maven и ivy, которые вам нужно сделать самостоятельно.

  • Migrator не поддерживает сообщения, отличные от типа String.

  • Мигратор не поддерживает FATAL уровень.

  • При работе с log4j мигратор не будет переносить вызовы в PropertyConfigurator или DomConfigurator.