[Android]Log打印

本文介绍了一个自定义日志输出类,通过输出调试信息并附加当前代码所在类名和行号,实现更详细的调试跟踪。此外,文章还提供了获取当前方法名、输出方法调用链和当前方法调用的逻辑,增强了日志的实用性。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

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

Android开发中,我们可以使用Log类来在控制台或日志文件中进行打印输出,而是直接在屏幕上显示。但是,我们可以通过Toast或Snackbar等方法间接地将日志信息显示在屏幕上。 最常用的方法是使用Toast类显示日志信息。Toast是一种在屏幕上显示简短消息的Android机制。我们可以使用Toast.makeText()方法创建一个Toast实例,并指定要显示的消息文本、显示时长等参数。然后,调用Toast.show()方法将Toast显示在屏幕上。 例如,我们可以使用以下代码将一条日志信息显示在屏幕上: ``` String message = "这是一条日志信息"; Toast.makeText(context, message, Toast.LENGTH_SHORT).show(); ``` 这样,当程序执行到这段代码时,屏幕上会弹出一个短暂显示消息的提示框,其中显示了我们指定的日志信息。 另一种方法是使用Snackbar类显示日志信息。Snackbar是一个替代Toast的控件,提供了更灵活和功能强大的消息显示方式。我们可以使用Snackbar.make()方法创建一个Snackbar实例,并指定要显示的消息文本、持续时长等参数。然后,调用Snackbar.show()方法将Snackbar显示在屏幕上。 例如,我们可以使用以下代码将一条日志信息显示在屏幕上: ``` String message = "这是一条日志信息"; Snackbar.make(view, message, Snackbar.LENGTH_SHORT).show(); ``` 这里的view参数表示Snackbar要显示在哪个视图上,可以是Activity的根视图或任何其他合适的视图。 总结来说,虽然AndroidLog类主要用于在控制台或日志文件中进行日志打印输出,但我们可以通过使用Toast或Snackbar等方法,将部分日志信息间接地显示在屏幕上,以增加用户体验或调试方便性。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值