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

Kir*_*pov 11 java logging log4j log4j2

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

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

log4j 2有类似的东西吗?

Rem*_*pma 7

2018年1月更新:

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


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

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

更新:log4j-2.2中的文档得到了改进.


Rob*_*unt 6

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

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

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