0
点赞
收藏
分享

微信扫一扫

Android,记录一个经常使用的LogUtil

高子歌 2022-02-13 阅读 79

使用StackTraceElement(堆栈轨迹)获取到类名,方法名,日志行数。

将日志方法参数设为可变参数,使用时免去来回拼接并且可接收任何参数。

 

使用时,直接用"{}"占位,后跟实参。

 

打印结果:

贴出整个工具类代码:

package com.zhuotop.logutils;

import android.util.Log;

import java.util.Locale;

public class LogUtils {

    private static final String TAG = "Demo";

    public static <T> void info(String msg, T... t) {
        String content = msg.replaceAll("%%", "%");
        String info = getTrackInfo() + content.replaceAll("\\{\\}", "%s");
        Log.i(TAG, String.format(Locale.ROOT, info, t));
    }

    private static String getTrackInfo() {
        StackTraceElement stackTrace = new Throwable().getStackTrace()[2];
        String className = stackTrace.getClassName();
        String simlpeName = className.substring(className.lastIndexOf(".") + 1);
        String methodName = stackTrace.getMethodName();
        int lineNumber = stackTrace.getLineNumber();
        return String.format(Locale.ROOT, "[%s:%s %d]", simlpeName, methodName, lineNumber);
    }
}

 

举报

相关推荐

0 条评论