Henry
发布于 2025-10-20 / 3 阅读
0
0

Bash - 记录日志 - 带参数

背景简介

Bash 带参数的记录日志方法。

前置信息

  1. Bash

详细信息

第一步: 新建脚本文件 log_v2.sh

#!/bin/bash

# ==============================================================================
# 脚本名称: log_v2.sh
# 功能描述: 带参数的记录日志方法
#          
# 作者: Henry.Lin
# 日期: 2025-10-17
# 使用方法: log_message log_level log_message
# ==============================================================================

log_message() {
  # 1. 检查参数数量
  if [[ $# -ne 2 ]]; then
    echo "用法: log_message <LEVEL> <MESSAGE>" >&2
    return 1
  fi

  # 2. 使用局部变量,提高可读性并避免污染全局命名空间
  local level="$1"
  local message="$2"

  # 3. 可选:对日志级别进行验证
  case "$level" in
    INFO|WARN|ERROR)
      # 有效的级别
      ;;
    *)
      echo "错误:无效的日志级别 '$level'。必须是 INFO, WARN, 或 ERROR。" >&2
      return 1
      ;;
  esac

  # 4. 根据级别改变输出颜色(高级功能)
  local color_code=""
  case "$level" in
    INFO)  color_code="\033[32m" ;; # 绿色
    WARN)  color_code="\033[33m" ;; # 黄色
    ERROR) color_code="\033[31m" ;; # 红色
  esac
  local reset_color="\033[0m"

  # 5. 打印最终格式化的日志
  echo -e "${color_code}[$(date +'%Y-%m-%d %H:%M:%S')] ${level}: ${message}${reset_color}"
}

# --- 使用示例 ---
echo "--- 正确调用 ---"
log_message "INFO" "服务启动成功。"
log_message "WARN" "配置文件未找到,使用默认配置。"
log_message "ERROR" "无法打开端口 8080。"

echo ""
echo "--- 错误调用 ---"
log_message "INFO"                    # 参数不足
log_message "DEBUG" "调试信息。"       # 无效的日志级别

第二步: 验证

  • 添加可执行权限
chmod +x log_v2.sh
  • 执行脚本
./log_v2.sh
--- 正确调用 ---
[2025-10-17 11:12:03] INFO: 服务启动成功。
[2025-10-17 11:12:03] WARN: 配置文件未找到,使用默认配置。
[2025-10-17 11:12:03] ERROR: 无法打开端口 8080。

--- 错误调用 ---
用法: log_message <LEVEL> <MESSAGE>
错误:无效的日志级别 'DEBUG'。必须是 INFO, WARN, 或 ERROR。

以上便是本文的全部内容,感谢您的阅读,如遇到任何问题,欢迎在评论区留言讨论。



评论