2016-07-04 3 views
0

Java Webアプリケーションで特定のメソッドを実行するのにかかる時間を調べようとしています。私はlog4jを使用するいくつかのログエントリを持っています。さて、ログエントリのタイムスタンプを利用して、コードの各セクションを実行するのに要する時間を知ることはできますか?現在、JVMにプロファイラを接続する柔軟性はありません。ログエントリのタイムスタンプ

+0

私は本当にあなたの質問を得ることはありません。もちろん、電卓を使って、ログエントリのタイムスタンプに基づいてデルタを手動で計算することもできます。しかし、あなたがそのような活動から得た決断があなたのために十分であるかどうかをあなたに伝えることはできません。あなたは、その数字があなたのユースケースに十分適しているかどうかを決める人です。 – GhostCat

+0

http://stackoverflow.com/questions/358225/log4j-with-timestamp-per-log-entry、いつでもどこでもSystem.CurrentMilliseconds()をログすることができます。 – peaceUser

+0

あなたの質問:あなたがそのような情報を必要とし、プロファイラを付けることができない場合。あなたのコードが多くのタイムスタンプを書くようにする以外の方法はありません。 – GhostCat

答えて

0

ログの日付を解析して、それを読み取り可能にします。

2014-07-02 20:52:39.345 DEBUG className:200 - This is debug message 
2014-07-02 20:52:39.366 DEBUG className:201 - This is debug message2 

は日付がスニペット変換ログ:

public static void main(String[] args) throws Exception { 
    String logdate = "2014-07-02 20:52:39.345"; 
    DateFormat df = new SimpleDateFormat("yyyy-MM-dd hh:mm:ss.SSS"); 

    System.out.println(df.parse(logdate)); 
} 

OUTPUT(Date::toString !!!)あなたのlog4j構成ファイル内の特定のパターンレイアウトを提供することができます

Wed Jul 02 20:52:39 CEST 2014 
+0

マルチスレッドとたくさんの「インターリーブ」されたメッセージを持っているとうまくいくかどうかは不明です。 – GhostCat

+0

@Jägermeisterはミリ秒単位でログの日付を変換するのとまったく同じです... –

0

。 log4jログテキストに含めることができるさまざまな事項については、linkを確認してください。

コードブロックの実行に要する時間を知りたい場合は、そのコードの前後にロギングステートメントを入れて、手動で時間差を見つけて同じことを知ることができます。

これは従来の方法ではないため、プロファイラを追加できない理由を解決することをお勧めします。

関連する問題