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!'
        }
    }
}

效果


相关推荐
SkyWalking中文站6 小时前
认识 Horizon UI · 6/17:Trace 探索器
运维·监控·自动化运维
火车叼位9 小时前
写给初级开发者:SSL、SSH、HTTPS 与证书体系全解析
运维
小猿姐21 小时前
唯品会大规模数据库云原生实践:基于 KubeBlocks 管理数千实例的统一运维之路
运维·elasticsearch·云原生
SkyWalking中文站1 天前
认识 Horizon UI · 5/17:3D 基础设施地图
运维·监控·自动化运维
SkyWalking中文站2 天前
认识 Horizon UI · 1/17:SkyWalking 新一代可观测性控制台
运维·前端·监控
雪梨酱QAQ2 天前
Kubeneters HA Cluster部署
运维
江华森3 天前
Spring Cloud 微服务全栈实战:从 Eureka 到 Docker Compose 一文贯通
运维
江华森3 天前
Matplotlib 数据绘图基础入门
运维
江华森3 天前
NumPy 数值计算基础入门
运维
乘云数字DATABUFF7 天前
5分钟部署开源APM Databuff:OpenTelemetry全链路追踪入门实战
运维·后端