AndroidのLogCatのTagで「クラス名.メソッド名:行番号」と表示するには?
どうやらAndroidのLogCatでのログ表示は、アプリケーション名は出るもののクラス名やメソッド名・行番号も表示できないらしい。
Log.v("ClassName.MethodName:LineNumber", "ログ表示");
などと自分で文字列を書いてやれば良いのだろうけど、こんなのマンドクサくてやってられないですよ。
徹底的にマンドクサさを排除することこそコーダーの本懐。そこでこうしてやった。
このクラスがあれば、上のコードはこうなる。
Log.v(Util.getTag(), "ログ表示");
タグ書きのための時間が節約できて、ほんの少しだけど、確実にコーディングが速くなる。
しかし、コーディングが速くなることより、精神的ストレスが軽減されることの方がもっと大事と思う。
Log.v("ClassName.MethodName:LineNumber", "ログ表示");
などと自分で文字列を書いてやれば良いのだろうけど、こんなのマンドクサくてやってられないですよ。
徹底的にマンドクサさを排除することこそコーダーの本懐。そこでこうしてやった。
package jp.example.utils;
public class Util {
public static final String getTag() {
StackTraceElement ste = Thread.currentThread().getStackTrace()[3];
String className = ste.getClassName();
className = className.substring(className.lastIndexOf(".") + 1);
String methodName = ste.getMethodName();
int lineNum = ste.getLineNumber();
return className + "." + methodName + ":" + lineNum;
}
}
このクラスがあれば、上のコードはこうなる。
Log.v(Util.getTag(), "ログ表示");
タグ書きのための時間が節約できて、ほんの少しだけど、確実にコーディングが速くなる。
しかし、コーディングが速くなることより、精神的ストレスが軽減されることの方がもっと大事と思う。
そうなんですよねぇ。LogCatってあんまり柔軟じゃないんですよね。参考になりました。
返信削除