写一个项目,为了方便测试,很多地方都会打印大量的日志。但是,开发期间打印出来当然方便,但是项目上线后还是会打印就会影响运行和泄露数据,删除日志打印语句嘛有麻烦而且回头维护时还是需要这些日志。
所以为了能自由控制,开发时打印,上线后不打印 做法就是定制自己的日志工具。
① 新建一个类LogUtil:
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 WARM=4;
public static final int ERROR=5;
public static final int NOTHING=6; //不输出任何日志
public static final int level=VERBOSE; //到时在这里改这个level的值即可
public static final void v(String tag, String msg){
if (level<=VERBOSE){ //可输出VERBOSE级别及其以下的日志
Log.v(tag,msg);
}
}
public static final void d(String tag, String msg){
if (level<=DEBUG){ //可输出DEBUG级别及其以下的日志
Log.d(tag,msg);
}
}
public static final void i(String tag, String msg){
if (level<=INFO){ //可输出INFO级别及其以下的日志
Log.i(tag,msg);
}
}
public static final void w(String tag, String msg){
if (level<=WARM){ //可输出WARN级别及其以下的日志
Log.w(tag,msg);
}
}
public static final void e(String tag, String msg){
if (level<=ERROR){ //可输出ERROR级别及其以下的日志
Log.e(tag,msg);
}
}
}
在LogUtil类中定义了6个日志等级的整型常量:VERBOSE=1;DEBUG=2;INFO=3;WARM=4; ERROR=5;NOTHING=6; 然后还有一个静态常量level控制可以输出哪个等级的日志。
在开发时,在LogUtil类中手动改level的值,如level=VERBOSE,就可以输出所有等级的日志(因为控制条件是level<=)。
在上线时,在LogUtil类中手动改level的值=Nothing,因为控制条件是level<=,即使代码中调用了LogUtil.e(tag,msg)等等,也不会输出任何日志了。