Linux shell脚本输出日志

1,628 阅读1分钟

Linux shell脚本输出日志

#### log_correct函数打印正确的输出到日志文件
function log_correct () {
DATE=`date "+%Y-%m-%d %H:%M:%S"` ####显示打印日志的时间
USER=$(whoami) ####那个用户在操作
echo "${DATE} ${USER} execute $0 [INFO] $@ >> home/username/successLog.txt"  ######($0脚本本身,$@将参数作为整体传输调用, >> 将输出结果以追加的方式添加重定向到本地文件中)
}
#### log_error函数打印错误的输出到日志文件
function log_error ()
{
DATE=`date "+%Y-%m-%d %H:%M:%S"`
USER=$(whoami)
echo "${DATE} ${USER} execute $0 [ERROR] $@ >> home/username/errorLog.txt"  # 跟上面相同,只是将错误的消息进行重定向
}

使用时通过函数调用的方式即可:

log_correct 传入的参数
或
log_error 传入的参数

shell脚本案例如下:

#!/bin/bash
  2 startDate=$1
  3 endDate=$2
  4
  5 ####log_correct函数打印正确的输出到日志文件
  6 function log_correct () {
  7 DATE=`date "+%Y-%m-%d %H:%M:%S"` ####显示打印日志的时间
  8 USER=$(whoami) ####那个用户在操作
  9 echo "${DATE} ${USER} execute $0 [INFO] $@" >> /home/***/successLog.log  ######($0脚本
    本身,$@将参数作为整体传输调用, >>将输出结果以追加的方式添加重定向到本地文件中(地址采用绝对
    路径))
 10 }
 11
 12
 13 function log_error ()
 14 {
 15 DATE=`date "+%Y-%m-%d %H:%M:%S"`
 16 USER=$(whoami)
 17 echo "${DATE} ${USER} execute $1 [ERROR] $@" >> /home/***/errorLog.log
 18 }
 19
 20 if [ $# -eq 2 ];
 21 then
 22     log_correct "执行的开始日期为: ${startDate} 结束日期为: ${endDate}"
 23 else
 24     log_error "请输入执行的开始时间和结束时间,输入的两个日期参数格式必须是yyyy-MM-dd"
 25 fi

创建一个.sh的脚本进行执行,结果为:

  1. 当不输入日期参数时:

    [webedit@bigdata-client-m220-106 ~]$ sh shelllog2.sh
    2021-12-20 16:41:50 webedit execute shelllog2.sh [ERROR] 请输入执行的开始时间和结束时间,输入的两个日期参数格式必须是yyyy-MM-dd
    

    在这里插入图片描述

  2. 当输入两个日期参数时

    [webedit@bigdata-client-m220-106 ~]$ sh shelllog2.sh 2021-12-19 2021-12-20
    2021-12-20 16:43:42 webedit execute shelllog2.sh [INFO] 执行的开始日期为: 2021-12-19 结束日期为: 2021-12-20
    

    在这里插入图片描述

同时查看输出重定向的文本文件,也可以查看到对应的输出文件内容: 在这里插入图片描述 在这里插入图片描述

可以以此来模拟日志输出的方式。