// Path: logful/src/main/java/com/getui/logful/security/DefaultSecurityProvider.java
// public class DefaultSecurityProvider implements SecurityProvider {
// 
//     private byte[] passwordData;
// 
//     private byte[] saltData;
// 
//     @Override
//     public byte[] password() {
//         if (passwordData == null) {
//             this.passwordData = SystemConfig.appKey().getBytes();
//         }
//         return passwordData;
//     }
// 
//     @Override
//     public byte[] salt() {
//         if (saltData == null) {
//             this.saltData = UIDUtils.uid().getBytes();
//         }
//         return saltData;
//     }
// }
// 
// Path: logful/src/main/java/com/getui/logful/security/SecurityProvider.java
// public interface SecurityProvider {
// 
//     byte[] password();
// 
//     byte[] salt();
// 
// }
// 
// Path: logful/src/main/java/com/getui/logful/util/LogUtil.java
// public class LogUtil {
// 
//     public static void d(String tag, String msg) {
//         if (LoggerFactory.isDebug()) {
//             Log.d(tag, msg);
//         }
//     }
// 
//     public static void d(String tag, String msg, Throwable tr) {
//         if (LoggerFactory.isDebug()) {
//             Log.d(tag, msg, tr);
//         }
//     }
// 
//     public static void e(String tag, String msg) {
//         if (LoggerFactory.isDebug()) {
//             Log.e(tag, msg);
//         }
//     }
// 
//     public static void e(String tag, String msg, Throwable tr) {
//         if (LoggerFactory.isDebug()) {
//             Log.e(tag, msg, tr);
//         }
//     }
// 
//     public static void i(String tag, String msg) {
//         if (LoggerFactory.isDebug()) {
//             Log.i(tag, msg);
//         }
//     }
// 
//     public static void i(String tag, String msg, Throwable tr) {
//         if (LoggerFactory.isDebug()) {
//             Log.i(tag, msg, tr);
//         }
//     }
// 
//     public static void v(String tag, String msg, Throwable tr) {
//         if (LoggerFactory.isDebug()) {
//             Log.v(tag, msg, tr);
//         }
//     }
// 
//     public static void v(String tag, String msg) {
//         if (LoggerFactory.isDebug()) {
//             Log.v(tag, msg);
//         }
//     }
// 
//     public static void w(String tag, Throwable tr) {
//         if (LoggerFactory.isDebug()) {
//             Log.w(tag, tr);
//         }
//     }
// 
//     public static void w(String tag, String msg, Throwable tr) {
//         if (LoggerFactory.isDebug()) {
//             Log.w(tag, msg, tr);
//         }
//     }
// 
//     public static void w(String tag, String msg) {
//         if (LoggerFactory.isDebug()) {
//             Log.w(tag, msg);
//         }
//     }
// 
//     public static void wtf(String tag, Throwable tr) {
//         if (LoggerFactory.isDebug()) {
//             Log.wtf(tag, tr);
//         }
//     }
// 
//     public static void wtf(String tag, String msg, Throwable tr) {
//         if (LoggerFactory.isDebug()) {
//             Log.wtf(tag, msg, tr);
//         }
//     }
// 
//     public static void wtf(String tag, String msg) {
//         if (LoggerFactory.isDebug()) {
//             Log.wtf(tag, msg);
//         }
//     }
// }


import com.getui.logful.security.DefaultSecurityProvider;
import com.getui.logful.security.SecurityProvider;
import com.getui.logful.util.LogUtil;

        /**
         * 设置默认的消息模板.
         *
         * @param defaultMsgLayout 消息模板内容
         */
        public Builder setDefaultMsgLayout(String defaultMsgLayout) {
            this.defaultMsgLayout = defaultMsgLayout;
            return this;
        }

        /**
         * 设置默认的 logger 名称.
         *
         * @param defaultLoggerName Logger 名称
         */
        public Builder setDefaultLoggerName(String defaultLoggerName) {
            this.defaultLoggerName = defaultLoggerName;
            return this;
        }

        /**
         * 设置截图压缩质量.
         *
         * @param screenshotQuality 压缩数值
         */
        public Builder setScreenshotQuality(int screenshotQuality) {
            if (screenshotQuality >= 1 && screenshotQuality <= 100) {
                this.screenshotQuality = screenshotQuality;
            } else {
// Path: logful/src/main/java/com/getui/logful/security/DefaultSecurityProvider.java
// public class DefaultSecurityProvider implements SecurityProvider {
// 
//     private byte[] passwordData;
// 
//     private byte[] saltData;
// 
//     @Override
//     public byte[] password() {
//         if (passwordData == null) {
//             this.passwordData = SystemConfig.appKey().getBytes();
//         }
//         return passwordData;
//     }
// 
//     @Override
//     public byte[] salt() {
//         if (saltData == null) {
//             this.saltData = UIDUtils.uid().getBytes();
//         }
//         return saltData;
//     }
// }
// 
// Path: logful/src/main/java/com/getui/logful/security/SecurityProvider.java
// public interface SecurityProvider {
// 
//     byte[] password();
// 
//     byte[] salt();
// 
// }
// 
// Path: logful/src/main/java/com/getui/logful/util/LogUtil.java
// public class LogUtil {
// 
//     public static void d(String tag, String msg) {
//         if (LoggerFactory.isDebug()) {
//             Log.d(tag, msg);
//         }
//     }
// 
//     public static void d(String tag, String msg, Throwable tr) {
//         if (LoggerFactory.isDebug()) {
//             Log.d(tag, msg, tr);
//         }
//     }
// 
//     public static void e(String tag, String msg) {
//         if (LoggerFactory.isDebug()) {
//             Log.e(tag, msg);
//         }
//     }
// 
//     public static void e(String tag, String msg, Throwable tr) {
//         if (LoggerFactory.isDebug()) {
//             Log.e(tag, msg, tr);
//         }
//     }
// 
//     public static void i(String tag, String msg) {
//         if (LoggerFactory.isDebug()) {
//             Log.i(tag, msg);
//         }
//     }
// 
//     public static void i(String tag, String msg, Throwable tr) {
//         if (LoggerFactory.isDebug()) {
//             Log.i(tag, msg, tr);
//         }
//     }
// 
//     public static void v(String tag, String msg, Throwable tr) {
//         if (LoggerFactory.isDebug()) {
//             Log.v(tag, msg, tr);
//         }
//     }
// 
//     public static void v(String tag, String msg) {
//         if (LoggerFactory.isDebug()) {
//             Log.v(tag, msg);
//         }
//     }
// 
//     public static void w(String tag, Throwable tr) {
//         if (LoggerFactory.isDebug()) {
//             Log.w(tag, tr);
//         }
//     }
// 
//     public static void w(String tag, String msg, Throwable tr) {
//         if (LoggerFactory.isDebug()) {
//             Log.w(tag, msg, tr);
//         }
//     }
// 
//     public static void w(String tag, String msg) {
//         if (LoggerFactory.isDebug()) {
//             Log.w(tag, msg);
//         }
//     }
// 
//     public static void wtf(String tag, Throwable tr) {
//         if (LoggerFactory.isDebug()) {
//             Log.wtf(tag, tr);
//         }
//     }
// 
//     public static void wtf(String tag, String msg, Throwable tr) {
//         if (LoggerFactory.isDebug()) {
//             Log.wtf(tag, msg, tr);
//         }
//     }
// 
//     public static void wtf(String tag, String msg) {
//         if (LoggerFactory.isDebug()) {
//             Log.wtf(tag, msg);
//         }
//     }
// }


// Path: logful/src/main/java/com/getui/logful/LoggerConfigurator.java
import com.getui.logful.security.DefaultSecurityProvider;
import com.getui.logful.security.SecurityProvider;
import com.getui.logful.util.LogUtil;


        /**
         * 设置默认的消息模板.
         *
         * @param defaultMsgLayout 消息模板内容
         */
        public Builder setDefaultMsgLayout(String defaultMsgLayout) {
            this.defaultMsgLayout = defaultMsgLayout;
            return this;
        }

        /**
         * 设置默认的 logger 名称.
         *
         * @param defaultLoggerName Logger 名称
         */
        public Builder setDefaultLoggerName(String defaultLoggerName) {
            this.defaultLoggerName = defaultLoggerName;
            return this;
        }

        /**
         * 设置截图压缩质量.
         *
         * @param screenshotQuality 压缩数值
         */
        public Builder setScreenshotQuality(int screenshotQuality) {
            if (screenshotQuality >= 1 && screenshotQuality <= 100) {
                this.screenshotQuality = screenshotQuality;
            } else {
                LogUtil.w(TAG, "Screenshot quality value must be set 1 ~ 100.");