[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);
	}
	
}

转载于:https://www.cnblogs.com/Cyning/p/3390883.html

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值