

# Section: zero cost log for High Efficiency Module. Like str, list, dict: DEBUG
___x_cmd_log_init0(){       # DEBUG + INFO + WARN + ERROR: For those module
    ___x_cmd_log_init0_inner "$@" 1 2 3 4
}

___x_cmd_log_init01(){      # DEBUG
    ___x_cmd_log_init0_inner "$@" 1
}

___x_cmd_log_init02(){      # DEBUG + INFO
    ___x_cmd_log_init0_inner "$@" 1 2
}

___x_cmd_log_init0_inner(){
    local logger_name="${1:?Provide logger name}"
    shift
    local var="___X_CMD_LOG__$logger_name"

    eval "$var=\${$var:-2}"
    eval "___X_CMD_LOG__0_$logger_name=1"

    local level_target_code
    eval level_target_code="\${$var}"


    local level_name
    local level_code; for level_code in "$@"; do
        ___x_cmd_log_level_code_to_level_name "$level_code"
        if [ "$level_code" -lt "$level_target_code" ]; then
            alias "${logger_name}:${level_name}"=" : # "
        else
            alias "${logger_name}:${level_name}"="O=${logger_name} ___x_cmd_log_pr_${level_name}"
        fi
    done

    eval "$var=$level_code"
}

## EndSection

