2017-01-25 14 views
1

У меня есть проект с пружинной загрузкой, в котором я перехожу из Log4j в Log4j2. Я выполнил шаги в документации here. В частности, я изменил свой файл log4j.xml, чтобы объединиться с стандартами log4j2 и переименовал его в log4j2.xml. Я включил отладку в log4j2 с помощью параметра <Configuration status="debug"> в моем log4j2.xml, поэтому я могу увидеть запуск log4j2. При запуске моей весенней загрузки приложения, я использую следующие настройки системы:Log4J все еще работает с Log4j2

-Dlog4j.configurationFile = log4j2.xml -Dorg.jboss.logging.provider = log4j2

Я могу видеть свой log4j2.xml в выходных данных отладки, начиная с appenders и т.д., а затем окончательное log4j2 сообщение о том:

поставщика Logging: org.jboss.loggin.Log4j2LoggerProvider найден через системное свойство

Я использую следующие банки:

компиляции группы: 'org.slf4j', название: 'SLF4J-log4j12', версия: '1.7.12'

компиляции группы: «орг .apache.logging.log4j ', name:' log4j-api ', версия:' 2.4.1 '

группа компиляции:' org.springframework.boot ', имя:' spring-boot-starter-log4j2 ', версия: «1.4.0.RELEASE»

Однако я все еще получение сообщений от Log4j:

log4j: WARN Нет appenders не может быть найдено регистратор log4j: WARN Пожалуйста инициализация системы LOG4J правильно log4j WARN Смотрите http://logging.apache.org/log4j/1.2/faq.html#noconfig для получения дополнительной информации

Так что мой основной вопрос заключается в как отключить log4j и использовать log4j2? Есть ли сообщение, которое я получу от log4j2, который будет явно указывать мне, когда я правильно настроил его правильно? Есть ли какие-либо специальные конфигурации, которые мне не хватает для использования Log4j2?

+0

удалить все параметры регистрации, кроме «spring-boot-starter-log4j2». –

ответ

1

Вы должны использовать только эти зависимости для log4j2.

<dependency> 
      <groupId>org.apache.logging.log4j</groupId> 
      <artifactId>log4j-api</artifactId> 
      <version>${log4j2.version}</version> 
     </dependency> 
     <dependency> 
      <groupId>org.apache.logging.log4j</groupId> 
      <artifactId>log4j-core</artifactId> 
      <version>${log4j2.version}</version> 
     </dependency> 
     <dependency> 
      <groupId>org.apache.logging.log4j</groupId> 
      <artifactId>log4j-slf4j-impl</artifactId> 
      <version>${log4j.slf4j.impl.version}</version> 
     </dependency> 
     <dependency> 
      <groupId>org.apache.logging.log4j</groupId> 
      <artifactId>log4j-web</artifactId> 
      <version>${log4j2.version}</version> 
      <scope>runtime</scope> 
     </dependency> 

Также вам необходимо исключить использование пружинного ботинка с пружинным ботинком. как это

0

В вопроснике Log4j2 теперь есть товар на excluding conflicting dependencies.

Я думаю, что вам это нужно:

<dependencies> 
    <dependency> 
    <groupId>log4j</groupId> 
    <artifactId>log4j</artifactId> 
    <version>1.2.17</version> 
    <scope>provided</scope> 
    </dependency> 
</dependencies> 
0

Мой проект использует log4j2 с пружинным ботинке.

Ниже представлена ​​часть pom.xml. Попробуйте.

<dependencies> 
    <dependency> 
     <groupId>org.springframework.boot</groupId> 
     <artifactId>spring-boot-starter</artifactId> 
     <exclusions> 
      <exclusion> 
       <groupId>org.springframework.boot</groupId> 
       <artifactId>spring-boot-starter-logging</artifactId> 
      </exclusion> 
     </exclusions> 
    </dependency> 
    <dependency> 
     <groupId>org.springframework.boot</groupId> 
     <artifactId>spring-boot-starter-log4j2</artifactId> 
    </dependency> 
</dependencies>