log4j2 记录器在一个类中使用时写入日志时不写入另一个类时不写入



Apache log4j2记录器打印到控制台,而不是在一个类(服务器端(中运行时打印到文件。如果将相同的记录器放置在其他(客户端(日志中,则按预期将其归档。

CCD_ 1被放置在正确的文件夹(即src\main\resources(中,并为项目中的其他记录器工作。我不明白为什么记录器在一个类(客户端(中以一种方式运行,而在另一个类中以另一种方式(服务器端(运行。

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>

只需要添加

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

在vm Arguments中。

最新更新