Android日志打印DebugLog 4年前

public class DebugLog{

    static String className;
    static String methodName;

    private DebugLog(){
        /* Protect from instantiations */
    }

    public static boolean isDebuggable(){
        return BuildConfig.DEBUG;
    }

    private static String createLog(String log){

        StringBuffer buffer = new StringBuffer();
        buffer.append("[");
        buffer.append(methodName);
        buffer.append("]");
        buffer.append(log);

        return buffer.toString();
    }

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

    public static void e(String message){
        if (!isDebuggable())
            return;

        // Throwable instance must be created before any methods  
        getMethodNames(new Throwable().getStackTrace());
        Log.e(className, createLog(message));
    }

    public static void i(String message){
        if (!isDebuggable())
            return;

        getMethodNames(new Throwable().getStackTrace());
        Log.i(className, createLog(message));
    }

    public static void d(String message){
        if (!isDebuggable())
            return;

        getMethodNames(new Throwable().getStackTrace());
        Log.d(className, createLog(message));
    }

    public static void v(String message){
        if (!isDebuggable())
            return;

        getMethodNames(new Throwable().getStackTrace());
        Log.v(className, createLog(message));
    }

    public static void w(String message){
        if (!isDebuggable())
            return;

        getMethodNames(new Throwable().getStackTrace());
        Log.w(className, createLog(message));
    }

    public static void wtf(String message){
        if (!isDebuggable())
            return;

        getMethodNames(new Throwable().getStackTrace());
        Log.wtf(className, createLog(message));
    }

}

调用:

@Override
protected void onCreate(Bundle savedInstanceState) {
    super.onCreate(savedInstanceState);
    setContentView(R.layout.activity_main);

    DebugLog.e("simple log from onCreate()");

    myFunc();
    mySecondFunc();
}

void myFunc(){
    DebugLog.e("simple log from myFunc()");
}

void mySecondFunc(){
    DebugLog.i("simple log from mySecondFunc()");
}

@Override
protected void onResume() {
    super.onResume();

    DebugLog.v("v log");
    DebugLog.w("w log");
    DebugLog.wtf("wtf log");
}

Android日志打印DebugLog Android日志打印DebugLog

image
Refel
人生而自由,却无往不在枷锁中。
3
发布数
1
关注者
2115
累计阅读

热门教程文档

Next
43小节
Objective-C
29小节
Flutter
105小节
Python
76小节
10.x
88小节
广告