题
我有一个使用 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 包的线程。
不隶属于 StackOverflow