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ってあんまり柔軟じゃないんですよね。参考になりました。
返信削除