背景简介
Bash 带参数的记录日志方法。
前置信息
- 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。
以上便是本文的全部内容,感谢您的阅读,如遇到任何问题,欢迎在评论区留言讨论。