Миграция из log4j-1.2 в slf4j с привязкой log4j-2.6

Я пытаюсь перенести существующий проект из прямого log4j в slf4j с привязкой log4j. Также я обновляю версию log4j с 1.2 до 2.6

Некоторые из общих изменений кода: -

1.

import org.apache.log4j.Logger;
.
.
.
private final static Logger log = Logger.getLogger(SearchXYZ.class);

становится

import org.slf4j.Logger;
import org.slf4j.LoggerFactory;
.
.
. 
private final static Logger log = LoggerFactory.getLogger(SearchXYZ.class);

2.

import org.apache.log4j.Logger;
.
.
.
private static final Logger logger = Logger.getLogger(XYZ.class);
.
.
.
logger.fatal("FAILURE", throwableObject);

становится

import org.slf4j.Logger;
import org.slf4j.LoggerFactory;
import org.slf4j.Marker;
import org.slf4j.MarkerFactory;
.
.
.
private static final Logger logger = LoggerFactory.getLogger(XYZ.class);
private static Marker fatal = MarkerFactory.getMarker("FATAL");
.
.
.
logger.error(fatal, "FAILURE", throwableObject);
  1. Удалены Appenders.

и так далее.

Одно место, за которое я застрял, - файл Configurator.

AppConfigLog4jConfigurator.configureForBootstrap();

Он дает ошибку времени компиляции: -

файл класса для org.apache.log4j.spi.Configurator не найден

Что делает эта функция? Какая возможная замена для этого?

java,logging,log4j,slf4j,

0

Ответов: 1


0

Во-первых, я не совсем уверен, почему вы переходите на API SLF4J, так как API Log4j 2 поддерживает все, что делает SLF4J, и многое другое. В моем собственном коде я обнаружил, что для переключения требуется только изменение импорта и LoggerFactory в LogManager.

Конфигуратор - это класс в Log4j 1, который используется для настройки Log4j. Он похож на класс Configurator в Log4j 2. Вероятно, вы хотите вызвать один из методов инициализации.

Java, каротаж, log4j, SLF4J,
Похожие вопросы