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"/>
Теперь он входит в мой файл.