В настоящее время я пытаюсь использовать log4j 2 в пределах .ear, который развертывается на сервере приложений Payara версии 4.1.2. Моя проблема в том, что ничего не регистрируется ни в консоли, ни в файле журнала. Файл журнала «app.log», который я определил в файле log4j2. xml, нигде не существует на моей машине после вызова конечной точки REST, где я использую log4j2. Кто-нибудь знает, в чем может быть проблема?
Записи в моем pom:
<dependency>
<groupId>org.apache.logging.log4j</groupId>
<artifactId>log4j-api</artifactId>
<version>2.13.3</version>
</dependency>
<dependency>
<groupId>org.apache.logging.log4j</groupId>
<artifactId>log4j-core</artifactId>
<version>2.13.3</version>
</dependency>
my log4j2. xml находится в src / main / resources:
<?xml version="1.0" encoding="UTF-8"?>
<Configuration status="WARN">
<Appenders>
<Console name="Console" target="SYSTEM_OUT">
<PatternLayout pattern="%d{HH:mm:ss.SSS} [%t] %-5level %logger{36} - %msg%n"/>
</Console>
<File name="LogToFile" fileName="logs/app.log">
<PatternLayout>
<Pattern>%d %p %c{1.} [%t] %m%n</Pattern>
</PatternLayout>
</File>
</Appenders>
<Loggers>
<Logger name="package.package" level="info" additivity="false">
<AppenderRef ref="LogToFile"/>
</Logger>
<Root level="error">
<AppenderRef ref="Console"/>
<AppenderRef ref="LogToFile"/>
</Root>
</Loggers>
</Configuration>
Я использую log4j 2, как показано ниже, как описано во многих онлайн-инструкциях. Он используется внутри контроллера REST, но я удалил ненужные части кода.
import org.apache.logging.log4j.LogManager;
import org.apache.logging.log4j.Logger;
public class App {
public static final Logger LOGGER = LogManager.getLogger(App.class);
public Response start() {
LOGGER.info("START PROCESS");
...
LOGGER.info("PROCESS FINISHED");
return Response.status(...).entity(...).build();
}
}
При проведении исследования я обнаружил следующую ветку: { ссылка } Но это касается Payara 5 . Я все равно создал системное свойство fi sh .payara.classloading.delegate = false, но безуспешно.