日誌打印類---LogUtils

安卓開發中,經常需要打印日誌,但是系統的日誌,一是 需要頻繁寫 tag,但是tag經常使用同一個,二是,不能輸出行數,三是,可能打印的日誌很長,不能打印完全,所以需要一個簡單的日誌打印類,少寫點代碼。上代碼:



import android.util.Log;

/**
 * Created by more on 2017/12/7/007.
 */

public class LogUtils {

    public static void setDebugMode(boolean debugMode) {
        LogUtils.debugMode = debugMode;
    }

    public static boolean isDebugMode() {
        return debugMode;
    }

    static boolean debugMode = true;

  
    static String className;//類名
    static String methodName;//方法名
    static int lineNumber;//行數


    private static String createLog(String log) {

        StringBuffer buffer = new StringBuffer();

        buffer.append(methodName);

        buffer.append("(").append(className).append(":").append(lineNumber).append(")");

        return buffer.toString();
    }

    private static void getMethodNames(StackTraceElement[] sElements) {
        className = sElements[1].getFileName();
        methodName = sElements[1].getMethodName();
        lineNumber = sElements[1].getLineNumber();
    }


    public static void logMe(String message) {


        if (debugMode) {

            Log.e("666", "|                                         |");

            logVeryLongLoge("666", "|" + message);

            getMethodNames(new Throwable().getStackTrace());
            Log.e("666", "|" + createLog(message));
            Log.e("666", "|                                         |");
            Log.e("666", "-----------------------------------------------------------------------");
            Log.e("666", "|                                         |");
        }
    }

   



    public static void logMe999(String message) {


        if (debugMode) {

            Log.e("999", "|                                         |");
            Log.e("999", "|" + message);
            getMethodNames(new Throwable().getStackTrace());
            Log.e("999", "|" + createLog(message));
            Log.e("999", "|                                         |");
            Log.e("999", "-----------------------------------------------------------------------");
            Log.e("999", "|                                         |");
        }
    }


   

    /**
     * 截斷輸出日誌
     * @param msg
     */
    public static void logVeryLongLoge(String tag, String msg) {
        if (tag == null || tag.length() == 0
                || msg == null || msg.length() == 0)
            return;

        int segmentSize = 3 * 1024;
        long length = msg.length();
        if (length <= segmentSize ) {// 長度小於等於限制直接打印
            Log.e(tag, msg);
        }else {
            while (msg.length() > segmentSize ) {// 循環分段打印日誌
                String logContent = msg.substring(0, segmentSize );
                msg = msg.replace(logContent, "");
                Log.e(tag, logContent);
            }
            Log.e(tag, msg);// 打印剩餘日誌
        }
    }

}

 


 

使用:

LogUtils.logMe("filePath :" + filePath);

 

參考文檔:

  1. Android中Logcat日誌打印不全解決辦法  https://www.jianshu.com/p/9fcdda2d6b7d
  2. 超級Log工具,能顯示你的文件名、方法、行數並且可以點擊到那一行  https://blog.csdn.net/wenzhi20102321/article/details/78138399
發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章