您的位置:首页 > 移动开发 > Android开发

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

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

Java代码


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();

}

假设现在有这么一个类:

Java代码


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.最重要的是使用同一句代码就可以打印对应的方法了,而不用单独在给第二个参数赋值啦!
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: