Файл конфигурации Log4j2.xml не найден

У меня есть проект, в котором я пытаюсь заставить Apache Log4j2 работать для входа в разные файлы. Мой проект - это приложение Spring, и у меня есть файл конфигурации log4j2.xml в структуре проекта, но когда я запускаю проект, либо как Spring Boot, либо как война с tomcat, похоже, что никаких журналов не происходит, кроме стандартного вывода по умолчанию.

Моя структура проекта:

-src
--main
---resources
----static
----templates
----application.properties
----log4j2.xml

Мой файл конфигурации:

<?xml version = "1.0" encoding = "UTF-8"?>
<Configuration status = "TRACE" monitorInterval = "1800">

  <Properties>
        <Property name = "logPattern">%d{yyyy-MM-dd HH:mm:ss.SSS} %5p ${hostName} --- [%15.15t] %-40.40c{1.} : %m%n%ex</Property>
        <Property name = "log-path">${sys:catalina.home}/logs</Property>
        <Property name = "secondary_path">C:/TEMP/logs</Property>
    </Properties>

  <Appenders>

    <Console name = "STDOUT" target = "SYSTEM_OUT">
      <PatternLayout pattern = "${logPattern}"/>
    </Console> 

    <RollingFile name = "FileAppenderInfo" fileName = "${secondary_path}/stream-info.log" filePattern = "${secondary_path}/stream-info-%d{yyyy-MM-dd}-%i.log" append = "true" immediateFlush = "true">
        <PatternLayout>
            <Pattern>${logPattern}</Pattern>
        </PatternLayout>
        <Policies>
            <SizeBasedTriggeringPolicy size = "10MB"/>
        </Policies>
        <DefaultRolloverStrategy max = "10"/>
    </RollingFile>


    <RollingFile name = "FileAppenderError"  fileName = "${secondary_path}/stream-error.log" filePattern = "${secondary_path}/stream-error-%d{yyyy-MM-dd}-%i.log" append = "true" immediateFlush = "true">
        <PatternLayout>
            <Pattern>${logPattern}</Pattern>
        </PatternLayout>
        <Policies>
            <SizeBasedTriggeringPolicy size = "10MB"/>
        </Policies>
        <DefaultRolloverStrategy max = "10"/>
    </RollingFile>

  </Appenders>

  <Loggers>

    <Logger name = "InfoLogger" level = "error">
        <AppenderRef ref = "FileAppenderInfo"/>
    </Logger>

    <Logger name = "ErrorLogger" level = "error">
        <AppenderRef ref = "FileAppenderError"/>
    </Logger>

    <Root level = "error">
      <AppenderRef ref = "STDOUT"/>
    </Root>

  </Loggers>

</Configuration>

Я попытался найти решение, но не могу понять, что не так, я даже попытался создать новый проект и реализовать зависимости, файл xml и попытался войти в код.

Мой код выглядит так:

private static final Logger log = LogManager.getLogger("InfoLogger");

log.info("POST HAS BEEN MADE");

Pom файл:

<!-- Dependency for log4j2 -->

      <dependency>
        <groupId>org.apache.logging.log4j</groupId>
        <artifactId>log4j-api</artifactId>
        <version>2.11.1</version>
      </dependency>
      <dependency>
        <groupId>org.apache.logging.log4j</groupId>
        <artifactId>log4j-core</artifactId>
        <version>2.11.1</version>
      </dependency>

Я также пробовал без использования тега версии.

Надеюсь, кто-нибудь сможет помочь Спасибо

<Logger name = "InfoLogger" level = "error">: думаю, вам сюда нужен level = "info"?
Alexandre Dupriez 02.11.2018 10:41

Да, я действительно не знаю, откуда произошла ошибка, но ничего не меняет: / все еще не работает

sandmaster 02.11.2018 13:01
Пользовательский скаляр GraphQL
Пользовательский скаляр GraphQL
Листовые узлы системы типов GraphQL называются скалярами. Достигнув скалярного типа, невозможно спуститься дальше по иерархии типов. Скалярный тип...
Как вычислять биты и понимать побитовые операторы в Java - объяснение с примерами
Как вычислять биты и понимать побитовые операторы в Java - объяснение с примерами
В компьютерном программировании биты играют важнейшую роль в представлении и манипулировании данными на двоичном уровне. Побитовые операции...
Поднятие тревоги для долго выполняющихся методов в Spring Boot
Поднятие тревоги для долго выполняющихся методов в Spring Boot
Приходилось ли вам сталкиваться с требованиями, в которых вас могли попросить поднять тревогу или выдать ошибку, когда метод Java занимает больше...
Полный курс Java для разработчиков веб-сайтов и приложений
Полный курс Java для разработчиков веб-сайтов и приложений
Получите сертификат Java Web и Application Developer, используя наш курс.
0
2
491
1

Ответы 1

Два предложения:

1) Используйте имя пакета, чтобы указать регистратор.

   <Logger name = "com.sample" level = "error">
     <AppenderRef ref = "FileAppenderInfo"/>
   </Logger>

2) Измените свой код, чтобы он соответствовал регистратору

частный статический окончательный журнал Logger log = LogManager.getLogger (); // По умолчанию берем имя текущего класса

ИЛИ

LogManager.getLogger (Test.class.getName ()); // Указываем имя класса

Не помогло после тестирования, спасибо за предложения

sandmaster 06.11.2018 13:20

Другие вопросы по теме