Shell工程化:日志系统与日志函数
本文最后更新于 2026年7月8日 下午
Shell工程化:日志系统与日志函数
一、为什么要建立日志系统
在简单脚本中,使用 echo 输出即可满足需求;但随着脚本规模扩大,仅依靠普通输出将难以定位问题、追踪执行过程和排查故障。
工程化脚本应具备以下能力:
- 记录执行过程
- 快速定位异常
- 保留历史执行记录
- 便于维护与调试
因此,建议统一使用日志函数代替直接调用 echo。
二、日志的基本规范
一条规范的日志通常应包含以下信息:
| 字段 | 说明 |
|---|---|
| 时间 | 日志产生时间 |
| 日志级别 | INFO、WARN、ERROR 等 |
| 日志内容 | 当前执行的信息 |
推荐格式:
1 | |
获取标准时间格式:
1 | |
输出示例:
1 | |
三、封装日志函数
建议将日志输出统一封装,避免重复代码。
1 | |
调用示例:
1 | |
四、彩色日志输出
Linux 终端支持 ANSI 转义字符,可提高日志可读性。
常用颜色:
| 颜色 | ANSI编码 |
|---|---|
| 红色 | 31 |
| 绿色 | 32 |
| 黄色 | 33 |
| 蓝色 | 34 |
| 青色 | 36 |
示例:
1 | |
恢复默认颜色:
1 | |
五、日志写入文件
生产环境不仅需要终端输出,还应将日志保存到文件,方便后续审计与排查。
初始化日志目录:
1 | |
推荐使用追加写入:
1 | |
避免使用:
1 | |
因为 > 会覆盖已有日志。
六、同时输出到终端和日志文件
可统一封装日志函数,实现双重输出。
1 | |
这种方式既方便实时查看,又能长期保存日志,是 Shell 工程化项目中的常见实践。
七、最佳实践
在大型 Shell 项目中,建议遵循以下规范:
- 所有输出统一使用日志函数。
- 日志包含时间、级别和内容。
- 日志目录自动创建。
- 日志文件统一管理,避免分散存放。
- 根据场景使用不同日志级别,提高可维护性。
- 重要脚本建议同时输出到终端和日志文件,便于排障与审计。
Shell工程化:日志系统与日志函数
http://example.com/e3bb6ee7.html