修改 log4j 服务端日志级别

前言

今天遇到一个问题,需要显示服务端打印的 debug 信息,也就是通过 sl4fj 的 debug 方法打印的日志信息。然后在网上寻求解决方法无果,最后自行研究找到解决方法特此记录。

Bukkit、BungeeCord 这类服务端程序,主要使用 log4j 作为日志框架,虽然插件提供了 java.util.logger 接口,简称 JUL,但是本质上也是由 log4j 实现的。

这类日志框架一般都会有个配置文件,并被打包到 jar 包里,只能通过通过配置文件修改。

解决方法

log4j 可以使用启动参数来指定配置文件路径,使用压缩软件将 jar 包内的 log4j2.xml 文件提取出来,放到启动脚本目录里面。

例如 Paper 服务端的 log4j 配置文件是在 /versions/版本号/paper-版本号.jar 这个文件内

修改配置文件,将 level="info" 全部替换成 level="debug" 然后保存

启动参数上附带以下参数,然后保存启动即可。

-Dlog4j.configurationFile=file:./log4j2.xml

然后就能够看到各种框架打印的 debug 信息。