Android 日志打印工具类

Android 中的日志工具类 Log

(android.util.Log)

方法含义
Log.v()Verbose
Log.d()Debug
Log.i()Info
Log.w()Warn
Log.e()Error
Log.wtf()在输出日志的同时,会把此处代码此时的执行路径(调用栈)打印出来。

使用方法:

Log.v(tag,msg);
Log.d(tag,msg);
Log.i(tag,msg);
Log.w(tag,msg);
Log.e(tag,msg);
Log.wtf(tag,msg);

输出结果:

日志打印标签(tag)日志打印信息(msg)
tagmsg

封装后的日志工具类

public class DebugLog {

    static String className;
    static String methodName;
    static int lineNumber;

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

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

    private static String createLog( String log ) {

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

        return buffer.toString();
    }

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

    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));
    }

}

使用方法:

DebugLog.e(msg);
DebugLog.i(msg);
DebugLog.d(msg);
DebugLog.v(msg);
DebugLog.w(msg);
DebugLog.wtf(msg);

输出结果:

日志打印标签(tag)日志打印信息(msg)
类名DebugLog + [方法名:行号] + msg

取消打印日志:

将 DebugLog 类中的 isDebuggable() 方法的返回值改成 false 即可。

public static boolean isDebuggable() {
        return false;
    }

参考:
http://www.linuxidc.com/Linux/2015-05/117919p2.htm

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值