Log4j 2 не входит в файл

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

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

Мой код не входит в мой File Appender или Console Appender:

<?xml version="1.0" encoding="UTF-8"?>
<Configuration>
  <Appenders>
    <Console name="Console" target="SYSTEM_OUT">
        <PatternLayout>
            <Pattern pattern="%d{HH:mm:ss.SSS} [%t] %-5level %logger{36} - %msg%n"/>
        </PatternLayout>        
    </Console>
    <File name="File" fileName="resources/app-log.log">
        <PatternLayout>
            <Pattern pattern="%d{MM.dd.yyyy HH:mm:ss.SSS} [%t] %-5level %logger{36} - %msg%n"/>
        </PatternLayout>
    </File>
  </Appenders>
  <Loggers>
    <Logger name="x.y" level="ALL" additivity="true">
      <AppenderRef ref="File"/>
      <AppenderRef ref="Console"/>
    </Logger>
  </Loggers>
</Configuration>

Вот мой код Java, допингующий регистрацию:

    package x.y;    

import org.apache.logging.log4j.LogManager;
import org.apache.logging.log4j.Logger;    

    public class Foo {
            private static Logger logger = LogManager.getLogger(Foo.class.getName());

            public static void main(String[] args) {
                Foo foo = new Foo;
                logger.info("Application starting");

             }

        }

Изменить: мое приложение входит в консоль, но не использует макет шаблона, который я указал. Мое приложение - приложение Maven, и я поместил log4j2.xml в src/main/resources. Я знаю, что моя конфигурация xml читается, потому что, когда я добавляю что-то недопустимое, я получаю исключение.

1 ответ

Догадаться. Изменился на:

<PatternLayout pattern="%d{MM.dd.yyyy HH:mm:ss.SSS} [%t] %-5level %logger{36} - %msg%n"/>

Теперь он входит в мой файл.

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