我有一个使用log4j的巨大耳朵,并且有一个用于设置它的配置文件。在此配置文件中,没有提及某些日志文件,但是在日志文件夹中生成了除配置文件中指定的文件之外的其他文件。我已经搜索了(logger | log4j | log)。(properties | xml)的其他组合,并且没有在耳中包含的所有jar文件中找到任何有希望的东西。如何跟踪哪些是创建这些额外文件的有问题的线程/类?
答案 0 :(得分:3)
尝试在File类的构造函数以及mkdir和createNewFile方法中放置断点。通常,代码将使用File类来创建其文件或目录。您应该拥有JVM附带的这些类的Java源代码。
答案 1 :(得分:3)
将-Dlog4j.debug
添加到命令行,标准输出中将有关于其配置方式的额外信息。
答案 2 :(得分:0)
正式的SysInternals,现在是Microsoft Process Explorer http://technet.microsoft.com/en-us/sysinternals/bb896653.aspx
“查找”菜单项 - > “查找句柄或DLL ......”
答案 3 :(得分:0)
SysInternals可能对Java类IO没有帮助。在写入这些日志时尝试获取JVM的线程转储(例如,kill -3)。你应该能够在堆栈跟踪顶部附近捕获一个带有java.io软件包的线程。