背景
在 Jenkins 的自动化构建与部署过程中,控制台往往会输出海量的日志信息。 如果所有日志都是单调的黑白文本,排查错误和定位关键节点将会非常耗时。
通过引入彩色日志,我们可以让构建状态一目了然(例如:绿色代表成功、红色代表报错、黄色代表警告),从而极大提升运维与开发的排错效率。
依赖
依赖插件 AnsiColor、 Blue Ocean
流水线脚本示例
shell
流水线配置脚本
js
pipeline {
agent {
// 需要安装插件:docker-workflow
docker {
image 'python310:v1'
}
}
environment {
GIT_TOKEN = '5FU-FwsRFqC8Ks799EQn' // 设置环境变量
VERSION = '1.0.0'
}
parameters { // 设置参数
string(name: 'BRANCH', defaultValue: 'feature-jenkins', description: 'Branch to build')
}
stages {
stage('打印输出') {
failFast true
steps {
sh """
# -e 参数表示启用转义字符解析
echo -e "\033[32m 构建成功!\033[0m"
echo -e "\033[31m 发生严重错误!\033[0m"
echo -e "\033[33m 警告:请注意检查配置。\033[0m"
"""
// 使用 ansiColor 包裹,指定颜色映射为 'xterm' 【推荐使用】
ansiColor('xterm') {
sh '''
echo -e "\033[32m 开始构建任务... \033[0m"
echo -e "\033[34m 正在拉取代码... \033[0m"
# 模拟一些操作
echo -e "\033[33m 构建完成,准备部署。 \033[0m"
'''
}
}
}
}
post {
always {
echo 'Cleaning up...'
sh 'rm -rf ./AutoTL3'
}
success {
echo 'Pipeline completed successfully!'
}
failure {
echo 'Pipeline failed!'
}
}
}
效果


python
pyhton 打印脚本
python
# -*- coding: utf-8 -*-
# @Software: PyCharm
# @Desc : 彩色打印
class Printer:
__ANSI_RED = '\033[91m'
__ANSI_GREEN = '\033[92m'
__ANSI_YELLOW = '\033[93m'
__ANSI_END = '\033[0m'
@classmethod
def INFO(cls, msg):
msg = 'INFO: ' + msg
print(cls.__ANSI_GREEN + msg + cls.__ANSI_END)
@classmethod
def ERROR(cls, msg):
msg = 'ERROR: ' + msg
print(cls.__ANSI_RED + msg + cls.__ANSI_END)
@classmethod
def WARNING(cls, msg):
msg = 'WARNING: ' + msg
print(cls.__ANSI_YELLOW + msg + cls.__ANSI_END)
if __name__ == '__main__':
Printer.ERROR("XXX")
Printer.INFO("XXX")
Printer.WARNING("XXX")
流水线配置脚本
js
pipeline {
agent {
// 需要安装插件:docker-workflow
docker {
image 'python310:v1'
}
}
environment {
GIT_TOKEN = '5FU-FwsRFqC8Ks799EQn' // 设置环境变量
VERSION = '1.0.0'
}
parameters { // 设置参数
string(name: 'BRANCH', defaultValue: 'feature-jenkins', description: 'Branch to build')
}
stages {
stage('打印输出') {
failFast true
steps {
sh """
# 下载上面的python脚本
wget http://10.132.1.127:8123/Tempfile/demo.py
python demo.py
rm -rf demo.py
"""
// 使用 ansiColor 包裹,指定颜色映射为 'xterm' 【推荐使用】
ansiColor('xterm') {
sh '''
# 下载上面的python脚本
wget http://10.132.1.127:8123/Tempfile/demo.py
python demo.py
rm -rf demo.py
'''
}
}
}
}
post {
always {
echo 'Cleaning up...'
sh 'rm -rf ./AutoTL3'
}
success {
echo 'Pipeline completed successfully!'
}
failure {
echo 'Pipeline failed!'
}
}
}
效果

