我有一个使用 log4j 的大耳朵,并且有一个用于设置它的配置文件。在此配置文件中没有提及某些日志文件,但是除了配置文件中指定的文件之外,还会在日志文件夹中生成其他文件。我搜索了 (logger|log4j|log).(properties|xml) 的其他组合,但在 Ear 中包含的所有 jar 文件中没有找到任何有希望的内容。如何找出创建这些额外文件的违规线程/类?

有帮助吗?

解决方案

尝试在 File 类的构造函数以及 mkdir 和 createNewFile 方法中放置一个断点。通常,代码将使用 File 类来创建其文件或目录。您的 JVM 中应该包含这些类的 Java 源代码。

其他提示

添加 -Dlog4j.debug 到命令行,标准输出中会有关于如何配置的额外信息。

以前是 SysInternal,现在是 Microsoft Process Explorerhttp://technet.microsoft.com/en-us/sysinternals/bb896653.aspx

“查找”菜单项 -> “查找句柄或 DLL...”

SysInternals 可能对 Java 类 IO 没有帮助。尝试在写入这些日志时获取 JVM 的线程转储(例如,kill -3)。您应该能够在堆栈跟踪顶部附近捕获带有 java.io 包的线程。

许可以下: CC-BY-SA归因
不隶属于 StackOverflow
scroll top