Bash Logging 是为 Bash 脚本提供结构化日志记录模式的技能,强调颜色支持、表情图标和 CI/CD 集成。
用途:当需要为 bash 脚本添加日志、为输出着色、实现日志级别、在 CI/CD 中生成可折叠分区、在终端中使用颜色时使用该技能。
主要能力:
- 基础日志函数:提供 print_success、print_error、print_warning、print_info、print_debug 等函数,借助颜色定义与表情图标表输出带颜色和图标的消息。
- 日志级别:可实现可配置的日志级别(更多示例见代码示例引用)。
- TTY 检测:提供 setup_colors 函数,在非交互环境或设置 NO_COLOR 时禁用颜色;detect_color_support 函数识别 CI 环境(CI、GITLAB_CI、GITHUB_ACTIONS)或终端以决定是否启用颜色。
- GitLab CI 可折叠分区:section_start 与 section_end 函数在 GitLab CI 中输出可折叠的日志分区,非 GitLab 环境下回退为普通标题。
- GitHub Actions 分组:技能中提及该能力,并提供代码示例引用。
- 进度指示器与结构化步骤日志:技能中提及并提供代码示例引用。
- shlocksmith 日志库:面向需要完整 CI 集成的综合日志场景,提供 20 多个日志级别函数(log_info、log_error、log_warning 等)、基于步骤的日志(log_step_start、log_step_pass、log_step_fail、log_step_skip、log_step_done 等)、颜色与表情支持及 TTY 检测、GitLab CI 分区管理、用于 TUI 的方框绘制字符、键值对格式化。
使用方式: 基础日志函数通过声明颜色关联数组与表情关联数组,再定义 print_* 函数实现;错误输出重定向到 stderr。TTY 检测通过 setup_colors 与 detect_color_support 控制颜色开关。GitLab CI 分区通过 section_start "build" "Building Application" 与 section_end "build" 成对调用。shlocksmith 日志库的使用示例为:在脚本首部 source /path/to/log_functions.sh,然后调用 log_start、section_start、log_step_start、log_step_pass 或 log_step_fail、section_end、log_done 等函数。
适用场景:Bash 脚本开发、需要彩色输出的命令行工具、CI/CD 流水线日志组织(GitLab CI、GitHub Actions)、终端 TUI 输出等。
限制:技能中未说明具体的安装命令、依赖版本、收费模式或平台限制;部分能力(日志级别、GitHub Actions 分组、进度指示器、结构化步骤日志)仅给出代码示例引用,未在正文中展开具体实现细节;shlocksmith 日志库的完整功能以其提供的 log_functions.sh 脚本为准。