Android發布版禁止Log輸出

一般來說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");

偶有所得,以此為記。

最后編輯于
?著作權歸作者所有,轉載或內容合作請聯系作者
平臺聲明:文章內容(如有圖片或視頻亦包括在內)由作者上傳并發布,文章內容僅代表作者本人觀點,簡書系信息發布平臺,僅提供信息存儲服務。

推薦閱讀更多精彩內容