Android发布版禁止Log输出

作者: 阳翟后生 | 来源:发表于2016-06-13 15:32 被阅读1139次

一般来说Android应用程序发布时都要禁止Log输出以保证自己的APP中的信息不会被人窃取,自己自定义一个Log日志管理工具是个人认为最好的选择。

import android.util.Log;
/**
 * 日志管理工具
 */
public class LogUtil {
    private LogUtil(){}
    /**
     * 日志的等级,默认为1,
     * 可以显示所有的日志等级
     * ①应用开发阶段,等级调为0可以保留所有等级的日志
     * ②在应用上线的时候,将日志等级调到2等级,那么只会保留w和e的日志信息
     * ③在应用上线的时候,将日志等级调到0等级,将会清楚所有日志信息,推荐使用6
     */
    private static int LOG_LEVEL = 6;

    /***************** 1、error级别的日志管理 *****************/
    /**
     * error级别的日志
     *
     * @param tag
     *            日志的tag
     * @param msg
     *            日志的输出信息
     */
    public static void e(String tag,String msg){
        if (LOG_LEVEL <= 1)
            Log.e(tag, msg);
    }
    public static void e(String tag,String msg,Throwable tr){
        if (LOG_LEVEL <= 1)
            Log.e(tag, msg, tr);
    }
    /***************** 2、warm级别的日志管理 *****************/
    public static void w(String tag,String msg){
        if (LOG_LEVEL <= 2)
            Log.w(tag, msg);
    }
    public static void w(String tag,String msg,Throwable tr){
        if (LOG_LEVEL <= 2)
            Log.w(tag, msg, tr);
    }

    /***************** 3、info级别的日志管理 *****************/
    public static void i(String tag,String msg){
        if (LOG_LEVEL <= 3)
            Log.i(tag, msg);
    }
    public static void i(String tag,String msg,Throwable tr){
        if (LOG_LEVEL <= 3)
            Log.i(tag, msg, tr);
    }

    /***************** 4、debug级别的日志管理 *****************/
    public static void d(String tag,String msg){
        if (LOG_LEVEL <= 4)
            Log.d(tag, msg);
    }
    public static void d(String tag,String msg,Throwable tr){
        if (LOG_LEVEL <= 4)
            Log.d(tag, msg, tr);
    }

    /***************** 5、verbose级别的日志管理 *****************/
    public static void v(String tag,String msg){
        if (LOG_LEVEL <= 5)
            Log.v(tag, msg);
    }
    public static void v(String tag,String msg,Throwable tr){
        if (LOG_LEVEL <= 5)
            Log.v(tag, msg, tr);
    }
    /***************** 6、更改日志显示等级 *****************/
    /**
     * 更改日志显示等级
     *
     * @param logLevel
     */
    public static void changeLogLevel(LogLevel logLevel) {
        switch (logLevel) {
            case VERBOSE:
                LOG_LEVEL = 5;
                break;
            case DEBUG:
                LOG_LEVEL = 4;
                break;
            case ERROR:
                LOG_LEVEL = 3;
                break;
            case INFO:
                LOG_LEVEL = 2;
                break;
            case WARN:
                LOG_LEVEL = 1;
                break;
            case NOLOG:
                LOG_LEVEL = 6;
                break;
            default:
                LOG_LEVEL = 0;
                break;
        }
    }

    /***************** 7、 日志等级的枚举类 *****************/
    /**
     * 日志等级的枚举类
     *
     * @author hacket
     */
    public enum LogLevel{
        VERBOSE, DEBUG, INFO, WARN, ERROR, NOLOG
    }
}

使用

LogUtil.e(TAG, "This is Log.e");

偶有所得,以此为记。

相关文章

网友评论

    本文标题:Android发布版禁止Log输出

    本文链接:https://www.haomeiwen.com/subject/eyuydttx.html