У меня есть проект, в котором я пытаюсь заставить 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>
Я также пробовал без использования тега версии.
Надеюсь, кто-нибудь сможет помочь Спасибо
Да, я действительно не знаю, откуда произошла ошибка, но ничего не меняет: / все еще не работает




Два предложения:
1) Используйте имя пакета, чтобы указать регистратор.
<Logger name = "com.sample" level = "error">
<AppenderRef ref = "FileAppenderInfo"/>
</Logger>
2) Измените свой код, чтобы он соответствовал регистратору
частный статический окончательный журнал Logger log = LogManager.getLogger (); // По умолчанию берем имя текущего класса
ИЛИ
LogManager.getLogger (Test.class.getName ()); // Указываем имя класса
Не помогло после тестирования, спасибо за предложения
<Logger name = "InfoLogger" level = "error">: думаю, вам сюда нуженlevel = "info"?