Jenkins流水线日志彩色打印输出

背景

在 Jenkins 的自动化构建与部署过程中,控制台往往会输出海量的日志信息。 如果所有日志都是单调的黑白文本,排查错误和定位关键节点将会非常耗时。

通过引入彩色日志,我们可以让构建状态一目了然(例如:绿色代表成功、红色代表报错、黄色代表警告),从而极大提升运维与开发的排错效率。

依赖

依赖插件 AnsiColorBlue 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!'
        }
    }
}

效果


相关推荐
大耳朵-小飞象12 小时前
电力安全运维的智能密码:BACS如何破解设备全生命周期管理难题,让电网安全“看得见、管得住”?
运维·安全·智慧城市·能耗系统·楼宇智控·未来生活
极客侃科技12 小时前
制造企业 MES/APS 选型:SAP PP/DS 集成、ERP-MES 边界划分与一体化架构要点
运维·架构·制造
生活爱好者!15 小时前
我把NAS当作下载机,docker一键部署qb
运维·docker·容器
尽兴-17 小时前
企业业务系统架构选型与渐进式演进
运维·系统架构·devops
通信小小昕17 小时前
Ubuntu 26.04 中文输入法安装
linux·运维·ubuntu
壮哥_icon18 小时前
【Android 系统开发】使用 BAT 脚本高效自动化管理 /system/priv-app/ 系统应用(安装与卸载)
android·运维·自动化
RD_daoyi18 小时前
外链权重暴跌至13%,品牌提及反超传统链接——2026年不做Digital PR,你的独立站等于隐形
运维·网络·学习·机器学习·搜索引擎
电商API_1800790524718 小时前
企业ERP进销存场景|京东商品详情接口自动同步方案|凭证鉴权批量调用技术实操
大数据·运维·人工智能·爬虫·数据挖掘·网络爬虫
张小姐的猫18 小时前
【Linux】网络编程 —— HTTP协议(上)
linux·运维·服务器·网络·http·单例模式·策略模式
小稻穗19 小时前
市场调研样本选型坐标系:2026六家国内样本平台能力横向校验
大数据·运维·数据分析