Android發(fā)布版禁止Log輸出

一般來說Android應(yīng)用程序發(fā)布時都要禁止Log輸出以保證自己的APP中的信息不會被人竊取,自己自定義一個Log日志管理工具是個人認(rèn)為最好的選擇。

import android.util.Log;
/**
 * 日志管理工具
 */
public class LogUtil {
    private LogUtil(){}
    /**
     * 日志的等級,默認(rèn)為1,
     * 可以顯示所有的日志等級
     * ①應(yīng)用開發(fā)階段,等級調(diào)為0可以保留所有等級的日志
     * ②在應(yīng)用上線的時候,將日志等級調(diào)到2等級,那么只會保留w和e的日志信息
     * ③在應(yīng)用上線的時候,將日志等級調(diào)到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");

偶有所得,以此為記。

最后編輯于
?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請聯(lián)系作者
【社區(qū)內(nèi)容提示】社區(qū)部分內(nèi)容疑似由AI輔助生成,瀏覽時請結(jié)合常識與多方信息審慎甄別。
平臺聲明:文章內(nèi)容(如有圖片或視頻亦包括在內(nèi))由作者上傳并發(fā)布,文章內(nèi)容僅代表作者本人觀點,簡書系信息發(fā)布平臺,僅提供信息存儲服務(wù)。

相關(guān)閱讀更多精彩內(nèi)容

友情鏈接更多精彩內(nèi)容