本文中的log包装来源于github一个项目中,具体位置我给忘了.经过此包装后可以方便查看到log所在的类名,方法名,行数等信息.
public class DLog {
static String className;
static String methodName;
static int lineNumber;
private DLog(){
/* Protect from instantiations */
}
public static boolean isDebuggable() {
return BuildConfig.DEBUG;
}
private static String createLog( String log ) {
StringBuffer buffer = new StringBuffer();
buffer.append("[");
buffer.append(methodName);
buffer.append(":");
buffer.append(lineNumber);
buffer.append("]");
buffer.append(log);
return buffer.toString();
}
private static void getMethodNames(StackTraceElement[] sElements){
className = sElements[1].getFileName();
methodName = sElements[1].getMethodName();
lineNumber = sElements[1].getLineNumber();
}
public static void e(String message){
if (!isDebuggable()){
return;
}
getMethodNames(new Throwable().getStackTrace());
Log.e(className, createLog(message));
}
public static void i(String message){
if (!isDebuggable()){
return;
}
getMethodNames(new Throwable().getStackTrace());
Log.i(className, createLog(message));
}
public static void d(String message){
if (!isDebuggable()){
return;
}
getMethodNames(new Throwable().getStackTrace());
Log.d(className, createLog(message));
}
public static void v(String message){
if (!isDebuggable()){
return;
}
getMethodNames(new Throwable().getStackTrace());
Log.v(className, createLog(message));
}
public static void w(String message){
if (!isDebuggable()){
return;
}
getMethodNames(new Throwable().getStackTrace());
Log.w(className, createLog(message));
}
public static void wtf(String message){
if (!isDebuggable()){
return;
}
getMethodNames(new Throwable().getStackTrace());
Log.wtf(className, createLog(message));
}
}