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" }