Linux 日志全是黑白,找报错超费眼!用 Shell 和 C 实现彩色打印,一眼揪 bug 少加班。
这其实是 Linux 通用 ANSI 转义码,简单给文字换色,记好万能公式就能用。
ANSI 彩色原理
核心流程:程序输出 → 插入 \033[...m → 终端识别 → 渲染彩色文字。
万能染色公式
\033[属性;颜色m 要打印的内容 \033[0m
重点碎碎念:结尾一定要加 \033[0m,千万别漏!
不然整个终端都会被染成固定颜色,后续输啥都是这个色,想改回来超麻烦,踩过坑的都懂。
Shell 脚本用法
echo -e "\033[属性;颜色m要打印的内容\033[0m"
关键点:echo 后面必须加 -e 参数,不然染色暗号会当成普通文字原样打出来。
日志级别配色(行业通用)
颜色速查小抄
文字属性
文字颜色
高亮组合示例
1;31 = 高亮红色,报错用这个更扎眼,扫一眼就能看见。
Shell 脚本示例
C 语言实现
写 Linux C 程序、做嵌入式开发的朋友,染色原理和 Shell 一样,不需要额外头文件或第三方库。
推荐用法:宏封装
项目里更推荐用宏封装,代码看着干净整洁,后续改颜色只改宏就行。
新手避坑指南
1. Shell 的 echo 必须加 -e
2. 结尾必须加 \033[0m
忘记加 \033[0m 重置颜色,整个终端都会变色,后续所有输出都带着这个颜色。
3. 日志存文件不要加颜色
彩色 ANSI 码写入文件会变成乱码。彩色日志只适合终端调试,正式文件用黑白就好。
总结
真的别再用枯燥的黑白日志折磨自己了,就一行代码的小事。
调试的时候,报错、提示、成功分得明明白白,再也不用盯着密密麻麻的文字抠细节