提问人:shyam 提问时间:9/16/2008 最后编辑:shyam 更新时间:4/16/2015 访问量:947
跟踪文件句柄
track down file handle
问:
我有一只使用 log4j 的大耳朵,并且有一个配置文件用于设置它。在此配置文件中,没有提到某些日志文件,但是,除了配置文件中指定的文件之外,还会在 logs 文件夹中生成其他文件。我搜索了 (logger|log4j|log) 的其他组合。(properties|xml),并且在 EAR 中包含的所有 jar 文件中都没有发现任何有希望的东西。如何追踪创建这些额外文件的违规线程/类?
答:
0赞
Adam Caviness
9/16/2008
#1
以前是 SysInternal,现在是 Microsoft 的 Process Explorer http://technet.microsoft.com/en-us/sysinternals/bb896653.aspx
“查找”菜单项 ->“查找句柄或 DLL...”
评论
0赞
shyam
9/16/2008
已经试过了:(但是,当我从应用程序服务器的 java 进程中搜索时,我看到的所有文件和目录都是应用程序服务器本身的文件和目录,我的日志目录没有出现在其中。顺便说一句,我使用的是 WAS 6.1。但是,我计划更深入地研究 procexp
0赞
Peter Hawkins
9/16/2008
#2
SysInternals 可能对 Java 类 IO 没有帮助。尝试在写入这些日志时获取 JVM 的线程转储(例如,kill -3)。您应该能够在堆栈跟踪顶部附近捕获带有 java.io 包的线程。
3赞
MetroidFan2002
9/16/2008
#3
尝试在 File 类的构造函数以及 mkdir 和 createNewFile 方法中放置一个断点。通常,代码将使用 File 类来创建其文件或目录。您应该将这些类的 Java 源代码包含在 JVM 中。
评论
0赞
shyam
9/26/2008
击中 F8 花了很多时间,但我追踪到了:)感谢
1赞
Gábor Lipták
6/21/2012
shyam,您也可以使用条件断点。条件如下所示,例如:this.path.endsWith(“bla”)
3赞
James A. N. Stauffer
9/16/2008
#4
添加到命令行,标准输出中将有关于如何配置它的额外信息。-Dlog4j.debug
评论
websphere
was