diff --git a/bin/log.sh b/bin/log.sh new file mode 100644 index 0000000..91c25bb --- /dev/null +++ b/bin/log.sh @@ -0,0 +1,47 @@ + +set_log_level(){ + # config 配置文件路径 + local SCRIPT_DIR="$(cd "$(dirname "${BASH_SOURCE[0]}")" && pwd)" # 脚本文件夹绝对路径 + local CONFIG_FILE="$SCRIPT_DIR/../config/config.json" # 配置文件路径 + + # 检查配置文件是否存在 + if [[ ! -f "$CONFIG_FILE" ]]; then + echo "错误:配置文件不存在 - $CONFIG_FILE" >&2 + exit 1 + fi + CURRENT_LEVEL="$(jq -r '.log.level // empty' "$CONFIG_FILE" 2>/dev/null)" + echo "" + if [[ -n "$CURRENT_LEVEL" ]]; then + echo "当前日志级别:$(cyan "$CURRENT_LEVEL")" + else + echo "当前日志级别:未知(无法解析配置文件)" + fi + + + # 日志等级,可选值:trace debug info warn error fatal panic + # 请用户选择新的日记级别 + local LEVELS=("trace" "debug" "info" "warn" "error" "fatal" "panic") + local LEVEL="" + echo "请选择日志级别:" + local i=1 + for lv in "${LEVELS[@]}"; do + echo " $i) $lv" + ((i++)) + done + while true; do + read -rp "请输入序号 [1-${#LEVELS[@]}]: " input + + if [[ "$input" =~ ^[0-9]+$ ]] && (( input >= 1 && input <= ${#LEVELS[@]} )); then + LEVEL="${LEVELS[$((input-1))]}" + break + else + echo "输入无效,请输入 1 到 ${#LEVELS[@]} 之间的数字。" + fi + done + + # 修改日记级别 + modify_json_file "$CONFIG_FILE" "log.level" "$LEVEL" + + green "日志级别已改修为:$LEVEL" +} + diff --git a/bin/utils/base.sh b/bin/utils/base.sh index 47ff02c..4cf1afd 100644 --- a/bin/utils/base.sh +++ b/bin/utils/base.sh @@ -8,6 +8,9 @@ green(){ echo -e "\033[32m$1\033[0m" } +cyan(){ + echo -e "\033[36m$1\033[0m" +} # 动态安装软件包 install_package() { @@ -65,7 +68,7 @@ url_encode() { CHAR="${STR:$I:1}" case "$CHAR" in [a-zA-Z0-9.~_-]) ENCODED+="$CHAR" ;; - *) + *) printf -v HEX '%02X' "'$CHAR" ENCODED+="%$HEX" ;; @@ -77,11 +80,11 @@ url_encode() { # 展示当前值并询问用户新输入的值 # 用法: ask_update "提示语" "当前值(当前配置文件的值)" -# 示例: +# 示例: # NEW_PORT=$(ask_update "请输入新的端口号" "$(jq -r '.inbounds[0].port' $CONFIG_DIR/config.json)") ask_update() { local PROMPT="$1" # 提示语 - local CURRENT_VALUE="$2" + local CURRENT_VALUE="$2" local INPUT read -p "${PROMPT} [当前: ${CURRENT_VALUE}]: " INPUT diff --git a/install.sh b/install.sh index 4007d5d..bbebafa 100644 --- a/install.sh +++ b/install.sh @@ -55,7 +55,7 @@ check_container_status(){ # 修改域名 ask_update_domain(){ local CONFIG_FILE="${1}" - + # 检查jq是否安装 check_jq @@ -78,7 +78,7 @@ ask_update_domain(){ # 是否存在acme域名, 存在则修改 if is_config_use_acme "$CONFIG_FILE"; then update_acme_domain "$CONFIG_FILE" "$DOMAIN" - fi + fi echo "修改域名成功" } @@ -93,7 +93,7 @@ check_config_file(){ exit 1 fi - # 检查配置文件是否为有效的JSON格式 + # 检查配置文件是否为有效的JSON格式 if ! jq '.' "$CONFIG_FILE" >/dev/null 2>&1; then echo "配置文件不是有效的JSON格式, 请重新生成配置文件." exit 1 @@ -137,7 +137,7 @@ create_config(){ main(){ local SCRIPT_DIR="$(cd "$(dirname "${BASH_SOURCE[0]}")" && pwd)/bin" # 脚本文件夹绝对路径 local CONFIG_FILE="$SCRIPT_DIR/../config/config.json" - + local CONTAINER_STATUS=$(check_container_status) # 显示菜单 echo "" @@ -154,6 +154,8 @@ main(){ echo "8. 更新镜像" echo "9. 更新脚本" echo "10. 开启BBR加速" + echo "11. 修改日记等级" + # 读取用户选择 local CHOICE @@ -166,7 +168,7 @@ main(){ install create_config port_manage allow $(get_listen_port "$CONFIG_FILE") # 开放端口 - run + run print_share_link "$CONFIG_FILE" ;; 2) @@ -219,6 +221,10 @@ main(){ # 开启BBR加速 enable_kernel_bbr ;; + 11) + # 修改日志等级 + set_log_level + ;; *) echo "无效的选择, 请重新选择." ;;