private static String createTag() {
        String tag = NEXT_TAG.get();
        if (tag != null) {
            NEXT_TAG.remove();
            return tag;
        }

        List<String> ignoreClasses = Arrays.asList(
                RxBleLog.class.getName(),
                LoggerUtil.class.getName(),
                LoggerUtilBluetoothServices.class.getName());

        Throwable throwable = new Throwable();
        StackTraceElement[] stackTrace = throwable.getStackTrace();
        int i = 0;
        while (i < stackTrace.length && ignoreClasses.contains(stackTrace[i].getClassName())) {
            i++;
        }
        if (stackTrace.length <= i) {
            throw new IllegalStateException(
                    "Synthetic stacktrace didn't have enough elements: are you using proguard?", throwable);
        }
        tag = stackTrace[i].getClassName();
        Matcher m = ANONYMOUS_CLASS.matcher(tag);
        if (m.find()) {
            tag = m.replaceAll("");
        }
        tag = tag.replace("Impl", "");
        tag = tag.replace("RxBle", "");
        int endIndex = tag.indexOf('$');
        String classTag = endIndex <= 0
                ? tag.substring(tag.lastIndexOf('.') + 1)
                : tag.substring(tag.lastIndexOf('.') + 1, endIndex);
        return "RxBle#" + classTag;
    }
Method to update current logger setup with new LogOptions. Only set options will be updated. Options that were not set or set to null
on the LogOptions will not update the current setup leaving the previous values untouched.

@param logOptions the new log options
rxandroidble/src/main/java/com/polidea/rxandroidble2/internal/RxBleLog.java