0

私はJavaプロセスを持っています。log4jロギング目的で使用しています。log4j.xmlで、ログ ファイルの場所と名前を指定しました。ロギングは正常に機能しています。kill -3ここでログに問題があります。

を使用してプロセスダンプを取得しようとしていますkill -QUIT <pid>/ killl -3 <pid>。で生成されたダンプが、kill -3で指定されたログ ファイルで更新されることを期待していましたlog4j.xml

しかし、それはそのようには起こっていません。オブザーバー スレッド ステータスへのダンプが必要です。実行中のプロセスのプロセス ダンプを取得する他の方法がわかりません。

4

2 に答える 2

1

kill -3stdoutに出力する必要があるため、stdoutが移動する場所に出力する必要があります。-XX:LogFileそうでない場合は、 JVMオプションで遊んでみてください。

別の方法はjstack、NPEによって提案されたとおりです。

もう1つの方法は、を使用するjvisualvmことです。これにより、優れたGUIでスタックダンプが生成され、そこからコピーできます。

于 2013-01-18T08:38:16.663 に答える
1

オブザーバー スレッド ステータスへのダンプが必要です。実行中のプロセスのプロセス ダンプを取得する他の方法がわかりません。

これに使えますjstack

于 2013-01-18T08:34:13.430 に答える