【发布时间】:2015-11-29 19:03:01
【问题描述】:
是否可以重定向kill 3 <java_pid>线程转储输出?
我在服务器上有很多行 (>500mb) 的大型 system_out.log 文件,很难解析和查找转储。
【问题讨论】:
标签: java terminal thread-dump
是否可以重定向kill 3 <java_pid>线程转储输出?
我在服务器上有很多行 (>500mb) 的大型 system_out.log 文件,很难解析和查找转储。
【问题讨论】:
标签: java terminal thread-dump
请将以下 JVM 参数附加到您的应用程序中。应在 dump.log 中捕获线程转储。
-XX:+UnlockDiagnosticVMOptions -XX:+LogVMOutput -XX:LogFile=dump.log
请注意,它不会重定向,但会启用 JVM 诊断日志记录。因此,也有可能在头顶上。
按照 Matt 的建议,您可以使用 jstack (etc) 在文件中捕获线程转储。为此,您可以简单地复制服务器中的 JDK 目录。但是,如果您想将 JDK 与您的应用程序一起打包并发布(以便稍后调试),请检查是否有任何许可暗示。
【讨论】: