Log4j 2.如何获取log4j的调试消息?

2022-09-03 14:06:08

据我所知,log4j可以处理系统属性-Dlog4j.debug。如果您使用它运行您的应用程序,您将获得log4j的调试输出。

示例:java -Dlog4j.debug -jar test.jar

log4j 2是否有类似的内容?


答案 1

2018 年 1 月更新:

从Log4j 2.10开始,这很简单:只需使用系统属性运行程序(不需要值;空字符串就可以了)。log4j2.debug


状态记录器上的当前 (log4j-2.1) 文档有点令人困惑。基本上:

  • 在找到配置之前,可以使用系统属性来控制状态记录器级别。org.apache.logging.log4j.simplelog.StatusLogger.level
  • 找到配置后,可以使用“status”属性在配置文件中控制状态记录器级别,例如:。<Configuration status="trace">

更新:在log4j-2.2中改进了文档


答案 2

它可能令人困惑,Log4J 1.x命令行参数最接近的等价物是它将Log4J 2.x“状态记录器”级别设置为跟踪并提供关于日志记录配置的详细输出。-Dlog4j.debug-Dorg.apache.logging.log4j.simplelog.StatusLogger.level=trace

Log4J 1.x 允许您使用配置文件所在的位置在命令行上手动指定配置文件的位置。在Log4J 2.x中,参数“配置文件”而不是“配置”有一个细微的区别。-Dlog4j.configuration=file:///var/lib/tomcat7/log4j.xml/var/lib/tomcat7/log4j.xml-Dlog4j.configurationFile=file:///var/lib/tomcat7/log4j.xml

显然,您需要确保您的配置文件适用于正在使用的Log4J版本,XML结构在1.x和2.x之间有所不同。


推荐