Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/java/318.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Java 如何在第三方jar上调试log4j(代码不可用)?_Java_Log4j - Fatal编程技术网

Java 如何在第三方jar上调试log4j(代码不可用)?

Java 如何在第三方jar上调试log4j(代码不可用)?,java,log4j,Java,Log4j,我使用第三方软件。 供应商说他们使用log4j来记录消息 我配置了我的log4j.properties,我可以从我的应用程序中看到信息,但从他们的应用程序中看不到 例如,我将根类别更改为INFO、ERROR或DEBUG 问题是我如何调试它 我已经完全控制了源代码,但不是他们的jar 任何建议 特别是,我可以对JVM进行运行时调用,告诉我为什么不记录他们的包 将此行添加到命令行: -Dlog4j.debug=true 它将在系统输出中显示log4j是如何初始化的。将这一行添加到命令行: -Dlog

我使用第三方软件。 供应商说他们使用log4j来记录消息

我配置了我的log4j.properties,我可以从我的应用程序中看到信息,但从他们的应用程序中看不到

例如,我将根类别更改为INFO、ERROR或DEBUG

问题是我如何调试它

我已经完全控制了源代码,但不是他们的jar

任何建议


特别是,我可以对JVM进行运行时调用,告诉我为什么不记录他们的包

将此行添加到命令行: -Dlog4j.debug=true


它将在系统输出中显示log4j是如何初始化的。

将这一行添加到命令行: -Dlog4j.debug=true


它将在系统输出中显示log4j是如何初始化的。

可能是您的log4j过度加载了它们的日志。您可能希望在log4j.properties.log4j.xml/log4j.properties/log4j.groovy中包含它的log4j配置,如果您已将其中任何一个直接放置在类路径(WEB-INF/classes)中,则以groovy为准。正如richardtz提到的,您的log4j会覆盖jar中的log4j配置文件。请将第三方jar中的相关日志信息复制到您的log4j.properties中,以解决问题。可能是您的log4j过度加载了它们的日志。您可能希望在log4j.properties.log4j.xml/log4j.properties/log4j.groovy中包含它的log4j配置,如果您已将其中任何一个直接放置在类路径(WEB-INF/classes)中,则以groovy为准。正如richardtz提到的,您的log4j会覆盖jar中的log4j配置文件。请将第三方jar中的相关日志信息复制到log4j.properties中,以解决问题。