48 lines
1.4 KiB
Bash
48 lines
1.4 KiB
Bash
|
|
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"
|
|
}
|
|
|