Shell编程—日志模块

Shell中的日志模块

简述:

相信大家发现在编写Shell脚本时觉得最难的地方就是Shell脚本的调试,往往是费时费力的撸了几百行Shell脚本,一执行,发现没报任何错误(开心),但是发现预期的要求却没实现(哭死),最后只能一行一行的调试,这篇文章主要是想分享几个在实际项目中对调试比较有帮助的日志打印方式,内容比较简单。

日志分类:

在具体的Shell工程中对外输出大体分为几种:

标志常用颜色志分类提示作用
[INFO]绿色正常输出用于查看程序执行进度
[DEBUG]白色调试输出用于输出一些程序运行过程中的中间变量,用于调试与开发
[WARNING]黄色告警信息用于提示一些无关紧要但是又与预期不符的程序结果
[ERROR]红色错误信息一些会影响shell执行的严重错误

所以在shell编写中提前定义好日志与日志类型还是很关键的,接下来我就分别写下如何定义以及封装这些日志模块

INFO 类型

INFO类型的日志是日志分类中最简单也是最基础的一类日志,只需要将标示输出并且输出要打印的文字既可,代码如下:

#!/bin/bash
function INFO() {
	msg=$1 #第一个参数 —— 要打印的文字
	echo -e "\033[32m[INFO]\033[0m" ${msg}
}
#调用INFO方法
INFO "This is INFO"

在这里插入图片描述

WARNING 类型

WARNING与INFO类似只要起提示作用,只是颜色变得比较鲜艳

#!/bin/bash
function WARNING() {
	msg=$1 #第一个参数 —— 要打印的文字
	echo -e "\033[34m[WARNING]\033[0m" ${msg}
}
#调用INFO方法
WARNING "This is WARNING"

在这里插入图片描述

ERROR 类型

ERROR类型比较特殊,一般放在错误判断逻辑里,执行后打印错误信息并退出程序

function ERROR() {
	msg=$1
	echo -e "\033[31m[ERROR]\033[0m" ${msg}
	exit -1 #这里退出代码不能为0,因为0表示正常退出,主要用于程序被调用的时候状态判定
}
ERROR "This is ERROR"

在这里插入图片描述

DEBUG 类型

DEBUG类型与INFO类型的区别就在于要将一些变量或者一些执行信息进行包裹,而且要根据配置信息进行选择是否要打开DEBUG

#!/bin/bash
DEBUG_FLAG=1 #1 | 0 全局变量用于判定是否打开debug模式
function DEBUG() {
	msg=$1
	echo [DEBUG] ${msg}
	if [[ ${DEBUG_FLAG} = 1 ]];then
		set -x #开启日志输出
	fi
}

DEBUG "This is DEBUG"
process=hello
echo "This is Progress:"${process} 

在这里插入图片描述

封装成log方法:
#!/bin/bash

function log() {
    if [[ $# -eq 1 ]];then
        msg=$1
        echo -e "\033[32m[INFO]\033[0m" ${msg}
    elif [[ $# -eq 2 ]];then
        param=$1
        msg=$2
        if [[ ${param} = "-w" ]];then
            echo -e "\033[34m[WARNING]\033[0m" ${msg}
        elif [[ ${param} = "-e" ]];then
            echo -e "\033[31m[ERROR]\033[0m" ${msg}
            exit -1
        elif [[ ${param} = "-d" ]];then
            echo [DEBUG] ${msg}
            if [[ ${DEBUG_FLAG} = 1 ]];then
                set -x #开启日志输出
            fi
        fi
    fi

}

function main() {
   DEBUG_FLAG=1
   log "this is INFO"
   log -w "this is WARNING"
   log -d "this is DEBUG"
   log -e "this is ERROR"
}

main

在这里插入图片描述

常见文字颜色的表述方式:
#!/bin/bash

function main() {
    echo -e "\033[30m 黑色字 \033[0m" 
    echo -e "\033[31m 红色字 \033[0m"
    echo -e "\033[32m 绿色字 \033[0m" 
    echo -e "\033[33m 黄色字 \033[0m" 
    echo -e "\033[34m 蓝色字 \033[0m" 
    echo -e "\033[35m 紫色字 \033[0m" 
    echo -e "\033[36m 天蓝字 \033[0m" 
    echo -e "\033[37m 白色字 \033[0m" 
}

main

在这里插入图片描述

  • 0
    点赞
  • 3
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值