Androd Log工具类,精确快速定位到log打印的位置行数

本文介绍了如何创建一个Android Log工具类,以便在日志打印时能精确显示代码行数,便于调试。在项目运行后,如果修改代码需要重新部署以保持行数定位的准确性。

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

Log工具类-精确制导

前言

  • 目的

     此代码块目的为了能在调试debug模式下能够准确的定位到log打印位置方便进行数据的调试
    

相关代码


/**
 * log 日志
 */

public class LogUtils {
    private static String className;//文件名A.java
    private static String methodName;//方法名 getView
    private static int lineNumber;//行数

    /**
     * 判断是否可以调试
     *
     * @return true代表debug模式
     */
    private static boolean isDebuggable() {
        return BuildConfig.DEBUG;
    }

    /**
     * 创建log信息内容
     *
     * @param log 打印的log信息
     * @return 带有定位的line所有log的信息
     */
    private static String createLog(String log) {
        StringBuffer buffer = new StringBuffer();
        buffer.append("========log开始========");
        buffer.append(methodName);
        buffer.append("(").append(className).append(":").append(lineNumber).append(")================:\n");
        buffer.append(log);
        buffer.append("\n========log结束========");
        return buffer.toString();
    }

    /**
     * 获取文件名、方法名、所在行数
     *
     * @param sElements 栈内元素
     */
    private static void getMethodNames(StackTraceElement[] sElements) {
        className = sElements[1].getFileName();
		// tag = sElements[1].getClassName(); // 包名类名:自选可用于Tag使用
        methodName = sElements[1].getMethodName();
        lineNumber = sElements[1].getLineNumber();
    }
	// 举例两个常用log,其他的直接造轮子就行了
    public static void logi(String msg) {
        if (!isDebuggable())
            return;
        getMethodNames(new Throwable().getStackTrace());
        Log.i(className, createLog(msg));
    }

    public static void loge(String msg) {
        if (!isDebuggable())
            return;
        getMethodNames(new Throwable().getStackTrace());
        Log.e(className, createLog(msg));
    }
}

打印结果


日志等级/Tag(带后缀的文件名称(即打印log位置的的文件))=====方法名(文件以及位置信息:行数)=====: 输出具体内容 =====

// 具体事例:
E/ContentFragment.java: ========log开始========onCreateView(ContentFragment.java:1024)================:
    我是需要打印的内容
    ========log结束========

PS

项目运行后打印日志后如更改代码需重新运行项目到机器中否者行数的定位将会失效

感兴趣的留下你的足迹,证明岁月曾来过
打扰了

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值