跟踪文件句柄

track down file handle

提问人:shyam 提问时间:9/16/2008 最后编辑:shyam 更新时间:4/16/2015 访问量:947

问:

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

Java 日志记录 文件 jakarta-ee websphere

评论

0赞 sblundy 9/16/2008
您运行的是什么应用服务器?正在创建哪些文件?
0赞 shyam 9/16/2008
WAS 6.1 并且除了 appName-(error|info|debug)之外.log还有 error.log 和 debug.log
0赞 sblundy 9/16/2008
嗯,你可能想用&标记你的帖子。看看是否有任何专家有任何建议。webspherewas
0赞 shyam 9/16/2008
感谢。好主意:)会这样做

答:

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