[Android]Log打印

package com.lurencun.android.system;



import android.util.Log;



public class ExLog {



	static final String TAG = ExLog.class.getSimpleName();



	/**

	 * 输出调试信息(System.out),并在调试输入信息中附带当前代码在哪个类哪一行的额外数据。

	 * @param message 调试信息

	 */

	public static void l(String message){

		StackTraceElement ele = Thread.currentThread().getStackTrace()[3];

		int line = ele.getLineNumber();

		String clazz = ele.getClassName();

		System.out.println(":::: @"+clazz+" -> "+line+" :::: "+message);

	}



	/**

	 * 取得当前代码所在的方法名

	 * @return 当前方法名

	 */

	public static String getCurrentMethodName(){

		// 0 getThreadStackTrce

		// 1 getStackTrace

		// 2 * this method: getCurrentMethodName

		// 3 your method

		return Thread.currentThread().getStackTrace()[3].getMethodName();

	}

	

	/**

	 * 输出方法调用链

	 * @param object 对象

	 */

	public static void logCurrentMethodChain(Object object){

		StackTraceElement[] es = Thread.currentThread().getStackTrace();

		long time = System.currentTimeMillis();

		Log.d(TAG, String.format("###### Object(%s) Method Chain ###### @Time( %d )", object.getClass().getSimpleName(), time));

		for(StackTraceElement e : es){

			String msg = String.format("### Method Chain ### Caller:%s  ->:%s", e.getClassName(),e.getMethodName());

			Log.d(TAG, msg);

		}

	}

	

	/**

	 * 输出当前方法调用

	 * @param object 对象

	 */

	public static void logCurrentMethod(Object object){

		String methodName = Thread.currentThread().getStackTrace()[3].getMethodName();

		long time = System.currentTimeMillis();

		String msg = String.format("###### Calling Method ###### Object(%s) -> %s @Time( %d )", object.getClass().getSimpleName(),methodName, time);

		Log.d(TAG, msg);

	}

	

}

你可能感兴趣的:(android)