• 大小: 11KB
    文件类型: .java
    金币: 2
    下载: 1 次
    发布日期: 2021-06-18
  • 语言: Java
  • 标签: andorid  

资源简介

此工具可以看到打的log在那个java中的那一行,方便我们查看流程

资源截图

代码片段和文件信息

package com.atguigu.mobileplayer2.utils;

import android.os.Environment;
import android.text.TextUtils;
import android.util.Log;

import java.io.BufferedWriter;
import java.io.File;
import java.io.FileOutputStream;
import java.io.IOException;
import java.io.OutputStreamWriter;
import java.text.DateFormat;
import java.text.SimpleDateFormat;
import java.util.Date;
import java.util.Formatter;
import java.util.Locale;

/**
 * Created by GaryChan on 16/5/3.
 */
public class LogUtil {
    public static String customTagPrefix = ““;  // 自定义Tag的前缀,可以是作者名
    public static boolean isSaveLog = false;    // 是否把保存日志到SD卡中
    public static final String LOG_PATH = Environment.getExternalStorageDirectory().getPath(); // SD卡中的根目录

    private static DateFormat formatter = new SimpleDateFormat(“yyyy-MM-dd“ Locale.SIMPLIFIED_CHINESE);

    private LogUtil() {
    }

    // 容许打印日志的类型,默认是true,设置为false则不打印
    public static boolean allowD = true;
    public static boolean allowE = true;
    public static boolean allowI = true;
    public static boolean allowV = true;
    public static boolean allowW = true;
    public static boolean allowWtf = true;

    private static String generateTag(StackTraceElement caller) {
        String tag = “%s.%s(Line:%d)“; // 占位符
        String callerClazzName = caller.getClassName(); // 获取到类名
        callerClazzName = callerClazzName.substring(callerClazzName.lastIndexOf(“.“) + 1);
        tag = String.format(tag callerClazzName caller.getMethodName() caller.getLineNumber()); // 替换
        tag = TextUtils.isEmpty(customTagPrefix) ? tag : customTagPrefix + “:“ + tag;

        return tag;
    }

    /**
     * 自定义的logger
     */
    public static CustomLogger customLogger;

    public interface CustomLogger {
        void d(String tag String content);

        void d(String tag String content Throwable e);

        void e(String tag String content);

        void e(String tag String content Throwable e);

        void i(String tag String content);

        void i(String tag String content Throwable e);

        void v(String tag String content);

        void v(String tag String content Throwable e);

        void w(String tag String content);

        void w(String tag String content Throwable e);

        void w(String tag Throwable tr);

        void wtf(String tag String content);

        void wtf(String tag String content Throwable e);

        void wtf(String tag Throwable tr);
    }

    public static void d(String content) {
        if (!allowD) {
            return;
        }

        StackTraceElement caller = getCallerStackTraceElement();
        String tag = generateTag(caller);

        if (customLogger != null) {
            customLogger.d(tag content);
        } else {
            Log.d(tag content);
        }
    }

    public static void d(String content Throwable e) {
        if (!allowD) {
            return;
        }

        StackTraceElement caller = getCallerStackTraceElement();
        

评论

共有 条评论