2011-11-09 3 views
6

ダブルクリックでLogcatのログインに自動的にアクセスする方法はありますか?ダブルクリックでLogcatのログインに自動的にアクセスする方法はありますか?

私のAndroidアプリケーションをクラッシュエラーがあった場合、実際に、私は

例えば
at com.myapp.mypackage$Class.function(File.java:117) 

を言っライン上でダブルクリックすることができ、この行をダブルクリックすることで、Iは、自動的に関連するラインにリダイレクトしています私のコードの。

しかし、私は別のログイン、例の同じ行を生成しよう:

Log.e("TAG", "at com.myapp.mypackage$Class.function(File.java:117)"); 

ダブルクリックはもう動作しません...

任意のアイデア?

+0

..しかし、それはまた、エディタは*スタックは、例外から*トレース処理するためですあなたのプログラム – Default

+1

を停止します。エディタのコードによっては、IDEの作成者がログ内の文字列とプロジェクトの実際のファイルを一致させる場合にのみ可能です。 – Patrick

+0

eclipseを使用している場合、["Stacktrace Console"](http://help.eclipse.org/indigo/index.jsp?topic=%2Forg.eclipse.jdt.doc.user%2Freference%2Fviews%2Fconsole %2Fref-stacktrace_console.htm)。 – JimmyB

答えて

3

あなたがログに混乱を気にしない場合は、クリックすることができlogcatでログを作成しに行きたい場合は、あなただけで簡単にログメッセージ

Log.e("TAG", "Looky here see", new Exception()); 
+0

ヒントをいただきありがとうございました。効率的ですが、私のログを乱雑にすることは本当に気にしません。 – Thordax

8

new Exception()を追加することができますあなたの行は、次の方法を使用して作成します:

お楽しみください!あなたはおそらく `あなたが問題を取得するラインから例外throw`でし

public static void showLogCat(String tag, String msg) { 

     StackTraceElement[] stackTraceElement = Thread.currentThread() 
       .getStackTrace(); 
     int currentIndex = -1; 
     for (int i = 0; i < stackTraceElement.length; i++) { 
      if (stackTraceElement[i].getMethodName().compareTo("showLogCat") == 0) 
      { 
       currentIndex = i + 1; 
       break; 
      } 
     } 

     String fullClassName = stackTraceElement[currentIndex].getClassName(); 
     String className = fullClassName.substring(fullClassName 
       .lastIndexOf(".") + 1); 
     String methodName = stackTraceElement[currentIndex].getMethodName(); 
     String lineNumber = String 
       .valueOf(stackTraceElement[currentIndex].getLineNumber()); 

     Log.i(tag, msg); 
     Log.i(tag + " position", "at " + fullClassName + "." + methodName + "(" 
       + className + ".java:" + lineNumber + ")"); 

    } 
+0

それはいかに簡単か驚異的! – Phil

関連する問題