首页 > 系统相关 >在shell脚本中为日志添加颜色

在shell脚本中为日志添加颜色

时间:2025-01-12 18:33:04浏览次数:1  
标签:脚本 info shell log 示例 函数 日志 中为

在 Shell 脚本中,可以通过添加 ANSI 转义序列来为日志输出添加颜色。以下是一个完整的 Shell 脚本示例,包含日志颜色定义、日志函数封装以及使用示例:

完整脚本:colored_logs.sh

#!/bin/bash

# 定义颜色变量
RED='\033[0;31m'
GREEN='\033[0;32m'
YELLOW='\033[0;33m'
BLUE='\033[0;34m'
NC='\033[0m' # 无颜色(重置颜色)

# 日志函数封装
log_error() {
    echo -e "${RED}[ERROR] $1${NC}"
}

log_warn() {
    echo -e "${YELLOW}[WARN] $1${NC}"
}

log_info() {
    echo -e "${GREEN}[INFO] $1${NC}"
}

log_debug() {
    echo -e "${BLUE}[DEBUG] $1${NC}"
}

# 示例函数,模拟一些操作
example_function() {
    log_info "开始执行示例函数..."
    log_debug "这是一个调试信息,通常用于详细日志。"

    # 模拟一个操作
    if [[ $1 == "error" ]]; then
        log_error "操作失败,模拟错误场景。"
    else
        log_info "操作成功完成。"
    fi

    log_warn "这是一个警告信息,表示需要注意的情况。"
}

# 主脚本逻辑
main() {
    log_info "脚本启动..."

    # 调用示例函数
    example_function "success"
    example_function "error"

    log_info "脚本结束。"
}

# 执行主函数
main

脚本说明

  1. 颜色定义

    • 使用 ANSI 转义序列定义了几种常见颜色(红色、绿色、黄色、蓝色)。
    • NC 用于重置颜色,避免后续文本被着色。
  2. 日志函数

    • log_error:输出红色错误日志。
    • log_warn:输出黄色警告日志。
    • log_info:输出绿色信息日志。
    • log_debug:输出蓝色调试日志。
  3. 示例函数

    • example_function 模拟了一个操作,根据传入的参数决定是否模拟错误场景。
    • 在函数中使用了不同的日志函数来记录不同级别的日志。
  4. 主函数

    • main 函数是脚本的入口,调用示例函数并输出日志。
  5. 执行脚本

    • 脚本最后调用 main 函数来启动逻辑。

运行脚本

  1. 将脚本保存为 colored_logs.sh
  2. 赋予脚本执行权限:
    chmod +x colored_logs.sh
    
  3. 运行脚本:
    ./colored_logs.sh
    

输出示例

运行脚本后,您将看到类似以下的彩色输出:

注意事项

  1. 终端支持

    • 确保您的终端支持 ANSI 颜色代码。大多数现代终端(如 Linux 终端、macOS Terminal、Windows Terminal)都支持。
  2. 日志级别

    • 您可以根据需要调整日志级别,例如在生产环境中禁用 DEBUG 日志。
  3. 扩展功能

    • 可以将日志输出重定向到文件,或者添加时间戳等功能。

通过这种方式,您可以为 Shell 脚本中的日志输出添加颜色,使其更易于阅读和区分。

标签:脚本,info,shell,log,示例,函数,日志,中为
From: https://www.cnblogs.com/ydswin/p/18667096

相关文章

  • 泷羽Sec-Powershell2
    学习视频来自B站up主**泷羽sec**有兴趣的师傅可以关注一下,如涉及侵权马上删除文章,笔记只是方便各位师傅的学习和探讨,文章所提到的网站以及内容,只做学习交流,其他均与本人以及泷羽sec团队无关,切勿触碰法律底线,否则后果自负!!!有兴趣的小伙伴可以点击下面连接进入b站主页[B站泷......
  • Kafka 是一个分布式流式平台,主要用于处理大规模、高吞吐量的消息传递、日志收集和实时
    Kafka集群是什么?Kafka是一个分布式流式平台,主要用于处理大规模、高吞吐量的消息传递、日志收集和实时数据流。Kafka集群是由多个Kafka服务器(称为Broker)组成的,它们共同工作以实现消息的高可用性、可靠性、可扩展性和容错性。Kafka集群的目的是确保消息的持久化和高效传输,同......
  • 如何在网站中实现数据库修改的日志记录?(确保网站数据库修改安全性的日志记录最佳实践)
    在企业网站运营过程中,数据库的每一次修改都可能影响到系统的稳定性和数据的一致性。因此,建立一个完善的日志记录系统至关重要。本问题旨在探讨如何有效地记录数据库修改日志,以确保数据的安全性和可追溯性。答案:为了确保网站数据库修改的安全性和可追溯性,建议采取以下步骤来实现......
  • 如何定期清理IIS的错误记录日志文件以防止磁盘空间不足?
    随着IIS组件的长期使用,错误日志文件会逐渐增大,可能导致磁盘空间被占满,进而影响服务器性能和网站正常运行。因此,定期清理IIS的错误记录日志文件非常重要。以下是详细的清理步骤和注意事项,帮助您有效管理日志文件,确保系统稳定运行:了解日志文件位置:IIS的错误日志文件通常存储在以......
  • shell脚本检查192.168.1网段ip是否在用
    要检查192.168.1网段中哪些IP地址正在使用,可以使用Shell脚本结合ping命令来扫描整个网段。以下是实现这一功能的完整脚本:脚本:检查192.168.1网段IP是否在用#!/bin/bash#定义网段NETWORK="192.168.1"#定义超时时间(秒)TIMEOUT=1#定义并行扫描的IP数量PAR......
  • ASP.NET Core - 日志记录系统(二)
    本篇接着上一篇[ASP.NETCore-日志记录系统(一)]往下讲,所以目录不是从1开始的。2.4日志提供程序2.4.1内置日志提供程序ASP.NETCore包括以下日志记录提供程序作为共享框架的一部分:ConsoleDebugEventSourceEventLog除此之外,还有一些微软官方提供的,但是没有和......
  • Shelly聊AI:年度展望:2025年AI与社会发展关键事件的深度思考(每年一篇,十年为期)
    大家好,我是Shelly,一个专注于输出AI工具和科技前沿内容的AI应用教练,体验过300+款以上的AI应用工具。关注科技及大模型领域对社会的影响10年+。关注我一起驾驭AI工具,拥抱AI时代的到来。人工智能&AIGC术语100条Shelly聊AI-重磅发布在人类浩瀚的历史中,人工智能犹如一颗璀璨夺目......
  • 寒假训练日志
    1.12CF49ECodeForcesLinkDifficulty:2300Tag:区间DP#include<bits/stdc++.h>usingnamespacestd;constintN=60;strings1,s2;booldp1[N][N][30],dp2[N][N][30];intdp[N][N];map<int,vector<pair<int,int>>>mp;intn,len1,len2;in......
  • golang 单元测试 命令行 日志打印 测试结果打印控制台
    golang单元测试命令行日志打印测试结果打印控制台test.bat@REMgotest-timeout30s-run^TestMultiPong$github.com/jergoo/go-grpc-tutorial/ping@REMgotest-timeout30s-run^TestPing$github.com/jergoo/go-grpc-tutorial/ping@REMgotest-timeout30s-......
  • Shell编程详解
    文章目录一、Linux系统结构二、Shell介绍1、Shell简介2、Shell种类3、Shell查询和切换三、Shell基础语法1、注释2、本地变量3、环境变量3.1、查看环境变量3.2、临时设置环境变量3.3、永久设置环境变量4、特殊变量5、控制语句5.1、shell中的中括号5.2、if语句5.3、for循......