我有一个Java进程。我正在使用log4j
进行日志记录。我在log4j.xml
中指定了日志文件的位置和名称。日志记录工作正常。我在这里遇到kill -3
日志的问题。
我尝试使用kill -QUIT <pid>/ killl -3 <pid>
获取进程转储。我希望kill -3
生成的转储在log4j.xml
中指定的日志文件中更新。
但事实并非如此。我需要转储到观察者线程状态。我不知道任何其他方法来获取正在运行的进程的进程转储。
答案 0 :(得分:1)
我需要转储到观察者线程状态。我不知道任何其他方法来获取正在运行的进程的进程转储。
您可以使用jstack
。
答案 1 :(得分:1)
kill -3
应输出到stdout,因此它应该是你的stdout去的地方。如果不是,您可以尝试使用-XX:LogFile
JVM选项。
NPE建议的替代方式是jstack
。
另一种选择是使用jvisualvm
- 它会在其漂亮的GUI中生成stackdump,你可以从那里复制它。