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