版权声明:本文为博主原创文章,未经博主允许不得转载。 https://blog.csdn.net/cugwuhan2014/article/details/76178971
Android打印调试类,可打印出日志所在的文件名、方法名、行号,使用的时候将Log换成LogTools即可,其他地方不变。
public class LogTools {
private static final String DEBUG_TAG = "TEST";
public static void v(String tag, String msg){
Log.v(tag, LogTools.appendExtraStr(msg));
}
public static void i(String tag, String msg){
Log.i(tag, LogTools.appendExtraStr(msg));
}
public static void d(String tag, String msg){
Log.d(tag, LogTools.appendExtraStr(msg));
}
public static void w(String tag, String msg){
Log.w(tag, LogTools.appendExtraStr(msg));
}
public static void e(String tag, String msg){
Log.e(tag, LogTools.appendExtraStr(msg));
}
private static String appendExtraStr(String msg){
StringBuilder stringBuilder = new StringBuilder();
stringBuilder.append(msg).append(" [").append(LogTools._FUNC_()).append("; ").append(LogTools._FILE_()).append(":").append(LogTools._LINE_()).append("]");
return stringBuilder.toString();
}
//当前文件名
private static String _FILE_() {
StackTraceElement traceElement = ((new Exception()).getStackTrace())[3];
return traceElement.getFileName();
}
// 当前方法名
private static String _FUNC_() {
StackTraceElement traceElement = ((new Exception()).getStackTrace())[3];
return traceElement.getMethodName();
}
// 当前行号
private static int _LINE_() {
StackTraceElement traceElement = ((new Exception()).getStackTrace())[3];
return traceElement.getLineNumber();
}
}
//调用堆栈
public static void printCallStatck() {
Throwable ex = new Throwable();
StackTraceElement[] stackElements = ex.getStackTrace();
StringBuilder logoutBuilder = new StringBuilder();
if (stackElements != null) {
logoutBuilder.append("---------------------------------------------");
for (int i = 0; i < stackElements.length; i++) {
logoutBuilder.append(stackElements[i].getClassName()+"/");
logoutBuilder.append(stackElements[i].getFileName()+"/");
logoutBuilder.append(stackElements[i].getLineNumber()+"/");
logoutBuilder.append(stackElements[i].getMethodName()+"\r\n");
}
logoutBuilder.append("---------------------------------------------");
}
LogTools.d(DEBUG_TAG, logoutBuilder.toString());
}