Android日志打印DebugLog

public class DebugLog{

	static String className;
	static String methodName;

    private DebugLog(){
        /* 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(log);

		return buffer.toString();
	}

	private static void getMethodNames(StackTraceElement[] sElements){
		className = sElements[1].getFileName();
		methodName = sElements[1].getMethodName();
	}

	public static void e(String message){
		if (!isDebuggable())
			return;

		// Throwable instance must be created before any methods  
		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));
	}

}

调用:

@Override
protected void onCreate(Bundle savedInstanceState) {
	super.onCreate(savedInstanceState);
	setContentView(R.layout.activity_main);

	DebugLog.e("simple log from onCreate()");

	myFunc();
	mySecondFunc();
}

void myFunc(){
	DebugLog.e("simple log from myFunc()");
}

void mySecondFunc(){
	DebugLog.i("simple log from mySecondFunc()");
}

@Override
protected void onResume() {
	super.onResume();

	DebugLog.v("v log");
	DebugLog.w("w log");
	DebugLog.wtf("wtf log");
}

ScreenshotScreenshot


你可能感兴趣的:(android,log,DebugLog)