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

效果


相关推荐
金融RPA机器人丨实在智能1 小时前
数据库运维Agent比价指南:国产自研产品适配国产数据库兼容性更好吗?
运维·数据库·人工智能·ai
BomanGe11 小时前
NSK紧凑型FA系列精密滚珠丝杠技术解析
运维·服务器·网络·经验分享·规格说明书
去码头整点薯条982 小时前
网络实验报告9
运维·服务器·网络
Sunny_20228373 小时前
打开从AutoCAD的不同版本粘贴到Ms Word的OLE对象
运维·pccad插件、cad·pccad个人免费版·免费cad插件
木雷坞3 小时前
LiteLLM Docker 部署:config.yaml、Master Key 和 Postgres 配置
运维·docker·容器·litellm
AC赳赳老秦3 小时前
OpenClaw + 阿里云 OSS 自动化:批量上传下载文件、自动备份本地数据到云端
运维·数据库·阿里云·自动化·云计算·deepseek·openclaw
数智化管理手记3 小时前
三步轻量化落地法!精益赋能数字化,让工厂转型告别形式化
运维·数据库·人工智能·精益工程
七夜zippoe3 小时前
DolphinDB MQTT协议接入:工业设备数据采集
运维·mqtt·dolphindb·工业设备·协议接入
Championship.23.243 小时前
Linux 3.0 串口机制深度解析:传统8250驱动与基础RS-232/485支持
linux·运维·服务器