平时使用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.最重要的是使用同一句代码就可以打印对应的方法了,而不用单独在给第二个参数赋值啦!