package com.lisn.ds_test;
import android.util.Log;
/**
* liShan
*/
public class MyLogger {
private static final String TAG = "MyLogger";
public static boolean DEBUG = true;
public static void V(String info) {
if (DEBUG) {
String[] infos = getAutoJumpLogInfos();
Log.v(TAG, info + " : " + infos[1] + infos[2]);
}
}
public static void D(String info) {
if (DEBUG) {
String[] infos = getAutoJumpLogInfos();
Log.v(TAG, info + " : " + infos[1] + infos[2]);
}
}
public static void I(String info) {
if (DEBUG) {
String[] infos = getAutoJumpLogInfos();
Log.v(TAG, info + " : " + infos[1] + infos[2]);
}
}
public static void W(String info) {
if (DEBUG) {
String[] infos = getAutoJumpLogInfos();
Log.v(TAG, info + " : " + infos[1] + infos[2]);
}
}
public static void E(String info) {
if (DEBUG) {
String[] infos = getAutoJumpLogInfos();
Log.v(TAG, info + " : " + infos[1] + infos[2]);
}
}
/**
* 显示Log信息(带行号)
*
* @param logLevel 1 v ; 2 d ; 3 i ; 4 w ; 5 e .
* @param info 显示的log信息
*/
public static void showLogWithLineNum(int logLevel, String info) {
String[] infos = getAutoJumpLogInfos();
switch (logLevel) {
case 1:
if (DEBUG)
Log.v(infos[0], info + " : " + infos[1] + infos[2]);
break;
case 2:
if (DEBUG)
Log.d(infos[0], info + " : " + infos[1] + infos[2]);
break;
case 3:
if (DEBUG)
Log.i(infos[0], info + " : " + infos[1] + infos[2]);
break;
case 4:
if (DEBUG)
Log.w(infos[0], info + " : " + infos[1] + infos[2]);
break;
case 5:
if (DEBUG)
Log.e(infos[0], info + " : " + infos[1] + infos[2]);
break;
}
}
/**
* 获取打印信息所在方法名,行号等信息
*
* @return
*/
private static String[] getAutoJumpLogInfos() {
String[] infos = new String[]{"", "", ""};
StackTraceElement[] elements = Thread.currentThread().getStackTrace();
if (elements.length < 5) {
Log.e("MyLogger", "Stack is too shallow!!!");
return infos;
} else {
infos[0] = elements[4].getClassName().substring(
elements[4].getClassName().lastIndexOf(".") + 1);
infos[1] = elements[4].getMethodName() + "()";
infos[2] = " at (" + elements[4].getClassName() + ".java:"
+ elements[4].getLineNumber() + ")";
return infos;
}
}
}
Android的log工具类(显示类名、方法名、行号)
最新推荐文章于 2021-05-26 20:47:49 发布