首先定义一个全局boolean值,并赋值为true,当项目结束时,所有的log不用一个个删除,直接修改boolean值为false.
/** 用于控制所有Log的输出 ,true输出,false不输出*/
public static boolean showLog = true;private static String className;
private static String methodName;
private static int lineName;
/** 输出info级别的log信息,log中的tag和msg可以传任意对象 */
public static void i(String objMsg) {
if (showLog) {
String tag = convertAsStringTag();
String msg = convertAsStringMsg(objMsg);
getMethodNames(new Throwable().getStackTrace());
String string = createLog();
Log.i(tag, string+msg);
}
}
/** 把Object类型的tag转换为String类型的tag */
private static String convertAsStringTag() {
return "i级别的log";
}
/** 把Object类型的消息转换为String类型的消息 */
private static String convertAsStringMsg(String objMsg) {
String msg;
if (objMsg == null) {
msg = "null";
} else {
msg = objMsg.toString(); // 把对象的toString用于Log信息的显示
}
return msg;
}
public static String createLog(){
StringBuffer buffer = new StringBuffer();
buffer.append(methodName);
buffer.append("(").append(className).append(" : ").append(lineName).append(")");
return buffer.toString();
}
public static void getMethodNames(StackTraceElement[] sElements){
className = sElements[1].getClassName();
methodName = sElements[1].getMethodName();
lineName = sElements[1].getLineNumber();
}