Почему регистратор Log4j2 выводит данные только на консоль, а не записывает в файл?

Почему регистратор Log4j2 выводит данные только на консоль, а не записывает в файл?

Регистратор Apache Log4j2 печатает в консоль, а не в файл при запуске на стороне сервера. Тот же регистратор, если его разместить на стороне клиента, записывает в файл, как и ожидалось. Это работало нормально в версии 1.7.10, но при переходе с 1.7.10 на 1.8.9 регистратор больше не записывает в файл, а печатает на консоль.

Log4j2.xml помещен в нужную папку (т.е. src\main\resources) и работает для других логгеров. Я не понимаю, почему логгер ведет себя одним образом на стороне клиента и другим образом на стороне сервера.

Кто-нибудь сталкивался с подобной проблемой для регистратора с версии 1.7.10 по 1.8.9? Это как-то связано с устареванием шины для регистрации событий? Любая помощь приветствуется.

GameLogger.java

public class GameLogger {

public static GameLogger INSTANCE = new GameLogger();
public static final Logger logger = LogManager.getLogger("MyGame");
@SubscribeEvent
public synchronized void onPlayerTick(final TickEvent.PlayerTickEvent tick) {
    if (tick.phase == Phase.END) {
        if (tick.player.isEntityAlive()) {  
                    logger.info("Logger is working");
                }
            }
        }
    }

log4j2.xml

<RollingRandomAccessFile name="StatsFile" fileName="logs/StatsFile-latest.log" filePattern="logs/StatsFile/%d{yyyy-MM-dd-HH}{GMT}-%i.log.gz">
            <PatternLayout pattern="%d{yyyy/MM/dd HH:mm:ss}{GMT}%msg%n" />
            <Policies>
                <TimeBasedTriggeringPolicy />
                <OnStartupTriggeringPolicy />
            </Policies>
        </RollingRandomAccessFile>

<Logger level="info" name="MyGame" additivity="false">
            <AppenderRef ref="StatsFile" />
        </Logger>
        <Root level="all">
            <AppenderRef ref="FmlSysOut" level="INFO" />
            <AppenderRef ref="ServerGuiConsole" level="INFO" />
            <AppenderRef ref="FmlFile"/>
        </Root>

Логгер работает нормально, если я помещаю его в отдельный клиентский класс с клиентским тиковым логированием. Он печатает в файл журнала, как и ожидалось, но по какой-то причине не делает того же самого, если поместить его в серверный класс.

решение1

Осталось только добавить

-Dlog4j.configurationFile=/src/main/resources/log4j2.xml

в аргументах vm.

Связанный контент