У меня есть ниже log4j2.xml файла:проблемы log4j2 при отправке вывода в файл
<?xml version="1.0" encoding="UTF-8"?>
<Configuration status="WARN">
<Properties>
<Property name="LOG_DIR">.</Property>
<Property name="ARCHIVE">output.log</Property>
<Property name="CONSOLE_PATTERN">[%-5level] %d{yyyy-MM-dd HH:mm:ss.SSS} [%t] %c{1} - %msg%n</Property>
<Property name="FILE_PATTERN">%d{yyy-MM-dd HH:mm:ss.SSS} [%t] %-5level %logger{36} - %msg%n</Property>
</Properties>
<Appenders>
<Console name="console" target="SYSTEM_OUT">
<PatternLayout pattern="${CONSOLE_PATTERN}"/>
</Console>
<File name="file" fileName="${LOG_DIR}/${ARCHIVE}" immediateFlush="false" append="false">
<PatternLayout pattern="${FILE_PATTERN}"/>
</File>
</Appenders>
<Loggers>
<Root level="info" additivity="false">
<AppenderRef ref="console"/>
<AppenderRef ref="file"/>
</Root>
<Logger name="com.my.example" level="TRACE" additivity="false">
<AppenderRef ref="console"/>
</Logger>
</Loggers>
</Configuration>
Затем в главном классе я поставил:
private static final Logger logger = LogManager.getLogger(Main.class.getName());
и в том же классе я вхожу несколько сообщений, используя строки ниже:
logger.trace("Starting application...");
logger.info("This should be written to file, but doesn't");
Когда я отладка моего приложения:
- Все сообщения о трассировке записываются на консоль.
- Информационные сообщения (logger.info) записываются только в консоль, но не в файл. Файл создается, но если я его открываю, он пуст. Зачем?
Я не тестировал при выполнении приложения (без отладки). Мне интересно, нормально ли это и только успех при отладке.