当前位置:首页 > 开发 > 移动开发 > 正文

android一种非常好的打印log的封装的方法(可直接获得主调用方的方法名)

发表于: 2015-06-18   作者:dandy_deng   来源:转载   浏览:
摘要: 平时使用android里的Log类打印信息的时候后面会跟着一个TAG和一个信息,通常呢大家都是想打印调用Log的方法名,所以每次都要写一些不同的字符串,那么接下来这种方法可以有效的避免这些操作。 public class LogHelper { private static String sRootTag = "dengck"; public stat

平时使用android里的Log类打印信息的时候后面会跟着一个TAG和一个信息,通常呢大家都是想打印调用Log的方法名,所以每次都要写一些不同的字符串,那么接下来这种方法可以有效的避免这些操作。

public class LogHelper {
    private static String sRootTag = "dengck";

    public static void setRootTag(String rootTag) {
        sRootTag = rootTag;
    }

    /**
     * 打印log详细信息
     */
    public static void d(String tag, String content) {
        Log.d(sRootTag + "_" + tag, content);
    }

    /**
     * 得到调用此方法的线程的线程名
     * 
     * @return
     */
    public static String getThreadName() {
        StringBuffer sb = new StringBuffer();
        sb.append(Thread.currentThread().getName());
        sb.append("-> ");
        sb.append(Thread.currentThread().getStackTrace()[3].getMethodName());
        sb.append("()");
        sb.append(" ");
        return sb.toString();
    }

 假设现在有这么一个类:

public class TestLog {

    private static final String TAG = "TestLog";

    public void test1() {
        LogHelper.d(TAG, LogHelper.getThreadName());
    }

    public void test2() {
        LogHelper.d(TAG, LogHelper.getThreadName()+" say something");
    }
}

 如果现在我们分别调用了test1()和test2(),则在log中将会分别打印

dengck_TestLog(线程序号):main->test1()

dengck_TestLog(线程序号):main->test2() say something

 

而且主TAG还可以设置,这样用在不同的项目中就可以设置不同的根TAG,查看log的时候查看这个根TAG就可以了.或者也可以查看某一个子TAG.最重要的是使用同一句代码就可以打印对应的方法了,而不用单独在给第二个参数赋值啦!

 

android一种非常好的打印log的封装的方法(可直接获得主调用方的方法名)

  • 0

    开心

    开心

  • 0

    板砖

    板砖

  • 0

    感动

    感动

  • 0

    有用

    有用

  • 0

    疑问

    疑问

  • 0

    难过

    难过

  • 0

    无聊

    无聊

  • 0

    震惊

    震惊

版权所有 IT知识库 CopyRight © 2009-2015 IT知识库 IT610.com , All Rights Reserved. 京ICP备09083238号