摘要:常用的日志輸出形式通過編輯需要調試的腳本,在腳本很多行使用輸出不同的內容來作為調試的依據通常小篇幅的腳本,使用的形式來調試,木的問題。如此,腳本就編程誰調用,誰給日志配置日志等級和日志輸出路徑。中的方法有待優化。
執行shell腳本時,常常會打印一些日志到控制臺,根據輸出的日志,來判斷腳本功能正確與否。
通過Vim編輯需要調試的腳本,在腳本很多行使用echo輸出不同的內容來作為調試的依據
[userwin@MiWiFi-R3L-srv temp]$ echo "This is a test log"This is a test log
通常小篇幅的shell 腳本,使用echo的形式來調試,木的問題。
但是如果shell腳本有上千行,且邏輯復雜的情況下,這種就很難滿足要求。
[userwin@MiWiFi-R3L-srv temp]$ vim log.sh#!/bin/bashfunction log(){ echo "$@"}
[userwin@MiWiFi-R3L-srv temp]$ vim debug.sh#!/bin/bashsource ./log.shlog "test log funciton"log "today is `date "+%Y-%m-%d"` "
[userwin@MiWiFi-R3L-srv temp]$ sh debug.sh test log funcitontoday is 2021-11-26
[userwin@MiWiFi-R3L-srv temp]$ vim log.sh#!/bin/bashfunction log(){ echo "$(date "+%Y-%m-%d %H:%M:%S") $@"}
[userwin@MiWiFi-R3L-srv temp]$ sh debug.sh 2021-11-26 00:04:53 test log funciton2021-11-26 00:04:53 today is 2021-11-26
LOG_OPEN=1 即為Log日志的開關。
[userwin@MiWiFi-R3L-srv temp]$ cat log.sh #!/bin/bashLOG_OPEN=1function log(){ [ $LOG_OPEN -eq 1 ] && echo "$(date "+%Y-%m-%d %H:%M:%S") $@"}
[userwin@MiWiFi-R3L-srv temp]$ vim log.sh #!/bin/bash#日志級別 debug-1, info-2, warn-3, error-4, always-5LOG_LEVEL=3#調試日志function log_debug(){ content="[DEBUG] $(date "+%Y-%m-%d %H:%M:%S") $@" [ $LOG_LEVEL -le 1 ] && echo -e "/033[32m" ${content} "/033[0m"}#信息日志function log_info(){ content="[INFO] $(date "+%Y-%m-%d %H:%M:%S") $@" [ $LOG_LEVEL -le 2 ] && echo -e "/033[32m" ${content} "/033[0m"}#警告日志function log_warn(){ content="[WARN] $(date "+%Y-%m-%d %H:%M:%S") $@" [ $LOG_LEVEL -le 3 ] && echo -e "/033[33m" ${content} "/033[0m"}#錯誤日志function log_err(){ content="[ERROR] $(date "+%Y-%m-%d %H:%M:%S") $@" [ $LOG_LEVEL -le 4 ] && echo -e "/033[31m" ${content} "/033[0m"}#一直都會打印的日志function log_always(){ content="[ALWAYS] $(date "+%Y-%m-%d %H:%M:%S") $@" [ $LOG_LEVEL -le 5 ] && echo -e "/033[32m" ${content} "/033[0m"}
調用
[userwin@MiWiFi-R3L-srv temp]$ vim test.sh #!/bin/bashsource ./log.shlog_debug "this is debug log..."log_info "this is info log..."log_warn "this is warn log..."log_err "this is error log..."log_always "this is always log.."
輸出結果
[userwin@MiWiFi-R3L-srv temp]$ sh test.sh [WARN] 2021-11-28 23:05:23 this is warn log... [ERROR] 2021-11-28 23:05:23 this is error log... [ALWAYS] 2021-11-28 23:05:23 this is always log..
vim logFile.sh#!/bin/bash#日志級別 debug-1, info-2, warn-3, error-4, always-5LOG_LEVEL=3#日志文件LOG_FILE=./log.txt#調試日志function log_debug(){ content="[DEBUG] $(date "+%Y-%m-%d %H:%M:%S") $@" [ $LOG_LEVEL -le 1 ] && echo $content >> $LOG_FILE && echo -e "/033[32m" ${content} "/033[0m"}#信息日志function log_info(){ content="[INFO] $(date "+%Y-%m-%d %H:%M:%S") $@" [ $LOG_LEVEL -le 2 ] && echo $content >> $LOG_FILE && echo -e "/033[32m" ${content} "/033[0m"}#警告日志function log_warn(){ content="[WARN] $(date "+%Y-%m-%d %H:%M:%S") $@" [ $LOG_LEVEL -le 3 ] && echo $content >> $LOG_FILE && echo -e "/033[33m" ${content} "/033[0m"}#錯誤日志function log_err(){ content="[ERROR] $(date "+%Y-%m-%d %H:%M:%S") $@" [ $LOG_LEVEL -le 4 ] && echo $content >> $LOG_FILE && echo -e "/033[31m" ${content} "/033[0m"}#一直都會打印的日志function log_always(){ content="[ALWAYS] $(date "+%Y-%m-%d %H:%M:%S") $@" [ $LOG_LEVEL -le 5 ] && echo $content >> $LOG_FILE && echo -e "/033[32m" ${content} "/033[0m"}
調用
[userwin@MiWiFi-R3L-srv temp]$ vim test.sh #!/bin/bashsource ./logFile.shlog_debug "this is debug log..."log_info "this is info log..."log_warn "this is warn log..."log_err "this is error log..."log_always "this is always log.."
輸出結果:
[userwin@MiWiFi-R3L-srv temp]$ cat log.txt [WARN] 2021-11-28 23:09:00 this is warn log...[ERROR] 2021-11-28 23:09:00 this is error log...[ALWAYS] 2021-11-28 23:09:00 this is always log..
修改輸出信息如下就有顏色處處了
輸出記過
腳本還有待完善,目前有如下幾個想法
1:創建log.cfg配置文件,放如下配置
#日志級別 debug-1, info-2, warn-3, error-4, always-5LOG_LEVEL=3#日志文件LOG_FILE=./log.txt
修改 logFile.sh 如果讀取log.cfg 有值,則取其值;無值,給個默認值。
2:將這兩個配置寫在調用shell 腳本中,并將這個量變量導入環境變量中,如果logFile.sh 沒有取到系統變量,就給個默認值。
如此,腳本就編程誰調用,誰給日志配置日志等級和日志輸出路徑。
3: logFile.sh 中的方法有待優化。
以上三個想法留著后面補充吧!!!
文章版權歸作者所有,未經允許請勿轉載,若此文章存在違規行為,您可以聯系管理員刪除。
轉載請注明本文地址:http://specialneedsforspecialkids.com/yun/125553.html
摘要:全棧數據之門前言自強不息,厚德載物,自由之光,你是我的眼基礎,從零開始之門文件操作權限管理軟件安裝實戰經驗與,文本處理文本工具的使用家族的使用綜合案例數據工程,必備分析文件探索內容探索交差并補其他常用的命令批量操作結語快捷鍵,之門提高效率光 showImg(https://segmentfault.com/img/bVK0aK?w=350&h=350); 全棧數據之門 前言 自強不息,...
閱讀 3733·2023-01-11 11:02
閱讀 4243·2023-01-11 11:02
閱讀 3049·2023-01-11 11:02
閱讀 5180·2023-01-11 11:02
閱讀 4733·2023-01-11 11:02
閱讀 5532·2023-01-11 11:02
閱讀 5312·2023-01-11 11:02
閱讀 3986·2023-01-11 11:02