Android-java Log封装,目前感觉最适合自己的LogUtils

Posted peak wang

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了Android-java Log封装,目前感觉最适合自己的LogUtils相关的知识,希望对你有一定的参考价值。

    封装的这个Log可以直接在日志中显示调用侧的类名,方法名,行号,方便定位问题。     

    这是好久前写的了,StackTrace数组中各元素的的含义忘了,也没必要翻书或重跑程序的必要,只记得返回下标为2的元素时指向的是调用侧,下标为1时指向的是Logg.

StackTraceElement ste = new Throwable().getStackTrace()[2];

日志如下:

 

代码:

package com.android.music.utils;

import android.util.Log;

public class Logg {

    public static String tagPrefix = "StmMusicPlayer";
    public static boolean isDebug = SystemProperties.getBoolean("persist.sys.apk.debug",true); /**persist.sys.apk.debug**/

    private static String tag() {
        StackTraceElement ste = new Throwable().getStackTrace()[2];
        String clsName = ste.getClassName();
        clsName = clsName.substring(clsName.lastIndexOf(".") + 1 ,clsName.length());

        String tag = String.format("%s|cls:%s|method:%s|line:%s|",tagPrefix,clsName,ste.getMethodName(),ste.getLineNumber());
        return tag;

    }


    public static void v(String msg) {
        if (isDebug) {
            Log.v(tag(), msg);

        }

    }

    public static void v(String msg, Throwable tr) {
        if (isDebug) {
            Log.v(tag(), msg, tr);

        }

    }

    public static void d(String msg) {
        if (isDebug) {
            Log.d(tag(), msg);

        }

    }

    public static void d(String msg, Throwable tr) {
        if (isDebug) {
            Log.d(tag(), msg, tr);

        }

    }

    public static void i(String msg) {
        if (isDebug) {
            Log.i(tag(), msg);

        }

    }

    public static void i(String msg, Throwable tr) {
        if (isDebug) {
            Log.i(tag(), msg, tr);

        }

    }

    public static void w(String msg) {
        if (isDebug) {
            Log.w(tag(), msg);

        }

    }

    public static void w(String msg, Throwable tr) {
        if (isDebug) {
            Log.w(tag(), msg, tr);

        }

    }

    public static void e(String msg) {
        if (isDebug) {
            Log.e(tag(), msg);

        }

    }

    public static void e(String msg, Throwable tr) {
        if (isDebug) {
            Log.e(tag(), msg, tr);

        }

    }

    public static void showLog(String tag, String msg) {
        if (isDebug) {
            Log.i(tag, msg);

        }

    }

}

以上是关于Android-java Log封装,目前感觉最适合自己的LogUtils的主要内容,如果未能解决你的问题,请参考以下文章

Android-Java-封装

markdown 网络ページの最适化

日志封装

markdown android-java.md

实时数据库 orderbyByChild(timeStamp) 不工作 (android-java)

Android-Java-静态变量