Я пытаюсь настроить log4j2 в стандартном приложении Java.
Я вошел во многие онлайн-учебники, но все они основаны на проекте Maven, где я использую Standard Vanilla Java с SDK 1.8. Приложение не имеет основного класса в качестве отправной точки, так как приложение является плагином для другого приложения, которое выполнило встроенный файл .jar.
У меня есть файл журнала, который соответствует моим потребностям, и я считаю, что правильно настроил экземпляр Logger в коде.
Файл конфигурации, который я нашел в моей папке src. Структура проекта выглядит следующим образом:
Project Root
- src
- UI
- Errors
- error classes go here
- Reports
- report classes go here
- Utilities
- utility classes go here
- CapitalReportsApplication - (This is the starting point of the application)
- resources
- log4j2.xml
log4j2.xml
<?xml version="1.0" encoding="UTF-8"?>
<Configuration status="INFO">
<Appenders>
<File name="MyFile" fileName="all.log" immediateFlush="false" append="false">
<PatternLayout pattern="%d{yyy-MM-dd HH:mm:ss.SSS} [%t] %-5level %logger{36} - %msg%n"/>
</File>
</Appenders>
<Loggers>
<Root level="debug">
<AppenderRef ref="MyFile"/>
</Root>
</Loggers>
</Configuration>
Инициализация регистратора файлов классов
private static Logger log = LogManager.getLogger(CapitalReportsApplication.class.getName());
log.info("This is a message");
При запуске плагина из клиентского приложения я получаю все ожидаемые результаты, но без файла журнала.