为了方便调试,编程的时候写入了很多的Log。如果项目完成的时候,一一删除是一个头疼的事情,可是不删除的话又会输出大量我们不愿展现出来的信息,可能会是机密,况且这也很拖累运行效率。
so, what should we do?
Is there anyway to solve this problem?
很简单,把所有的Log都写进一个单独的类中,类中实现自定义方法用于输出,然后项目中再需要打印的时候再调用此类中方法。不用的时候,单独处理此类即可。貌似描述得有点干吧,上代码!
import android.util.Log;
public class LogUtil {
public static final int VERBOSE = 1;
public static final int DEBUG = 2;
public static final int INFO = 3;
public static final int WARN = 4;
public static final int ERROR = 5;
public static final int NOTHING = 6;
public static final int LEVEL = VERBOSE;
public static void v(String tag, String msg) {
if (LEVEL <= VERBOSE) {
Log.v(tag, msg);
}
}
public static void d(String tag, String msg) {
if (LEVEL <= DEBUG) {
Log.d(tag, msg);
}
}
public static void i(String tag, String msg) {
if (LEVEL <= INFO) {
Log.i(tag, msg);
}
}
public static void w(String tag, String msg) {
if (LEVEL <= WARN) {
Log.w(tag, msg);
}
}
public static void e(String tag, String msg) {
if (LEVEL <= ERROR) {
Log.e(tag, msg);
}
}
}
在LogUtil中定义了VERBOSE、DEBUG、INFO、WARN、ERROR、NOTHING这六个整型常量,其对应的值都是递增的。然后定义一个LEVEL常量,其值可以指定为上面六常量之一。
LogUtil实现了v(),d(),i(),w(),e()五个自定义的Log方法,在其内部分别调用Log.v()等来打印日志。在自定义的方法中加入了if条件判断,当LEVEL常量满足某一条件时才会打印。
这就是Log日志工具。
在项目中,当需要打印DEBUG级别的日志时可以这样写,
LogUtil.d("TAG", "debug log");
控制LEVEL的值可以控制日志的打印行为,如将LEVEL定义为VERBOSE可以将所有的日志都打印出来,使其等于WARN可以将警告以上级别的日志打印出来,使其等于NOTHING可以将所有的日志都屏蔽掉,这就解决了文前提高的问题。
LOL !
没有评论:
发表评论