自定义错误日志功能脚本

问题描述 投票:0回答:1
#!/bin/ksh
DateForFileName=`date +%Y-%m-%d-%H-%M-%S`
DateTimeForLog=$(date +"%m/%d/%Y %l:%M %p")
StdOutPutlogFile='/tmp/Suganya/LofFileCheck'
StdErrorLogFile='/tmp/Suganya/LofFileCheckError'
ScriptName=$(basename $0 | cut -d'.' -f1)
#function to capture common error logs with timestamp
OutputLog()
 {
  read IN
  echo $DateTimeForLog-$ScriptName-"Information"-$IN >> $StdOutPutlogFile
 }
errorLog()
{
 read IN
 echo "error"
 echo $DateTimeForLog-$ScriptName-"Error"-$IN >> $StdErrorLogFile
 }
Customoutput()
 {
 echo $DateTimeForLog-$ScriptName-"Information"-$1 >> $StdOutPutlogFile
 }
#######set of commands#########
{
echo 'started'
ls -la
cd /tmp/kjhdakdha
ls -la
} 2> errorLog 1> OutputLog

我试图使用针对该组命令的自定义函数分别捕获错误日志和输出日志。但实际上并没有调用userdefined函数。相反,它正在创建文件“errorLog”和“outputLog”。请帮助调用该组函数的函数来捕获日志。

提前致谢!

shell ksh
1个回答
0
投票

您需要使用参数调用该函数,以便它可以相应地获取错误日志并根据其中的命令进行打印,请参阅下面的更正,

    #!/bin/ksh
    DateForFileName=`date +%Y-%m-%d-%H-%M-%S`
    DateTimeForLog=$(date +"%m/%d/%Y %l:%M %p")
    StdOutPutlogFile='/tmp/Suganya/LofFileCheck'
    StdErrorLogFile='/tmp/Suganya/LofFileCheckError'
    ScriptName=$(basename $0 | cut -d'.' -f1)
    #function to capture common error logs with timestamp
    OutputLog()
     {
      echo $DateTimeForLog-$ScriptName-"Information"-$1>> $StdOutPutlogFile
     }
    errorLog()
    {
     echo "error"
     echo $DateTimeForLog-$ScriptName-"Error"-$1>> $StdErrorLogFile
     }
    Customoutput()
     {
     echo $DateTimeForLog-$ScriptName-"Information"-$1 >> $StdOutPutlogFile
     }
    #######set of commands#########
    {
    echo 'started'
    ls -la
    cd /tmp/kjhdakdha
    ls -la
    } 2> errorLog.txt 1> OutputLog.txt
    if [ -s errorLog.txt ];then
        LE=`cat errorLog.txt`
        errorLog "$LE"
    fi
    if [ -s OutputLog.txt ];then
        LO=`cat OutputLog`
        OutputLog "$LO"
    fi
rm errorLog.txt OutputLog.txt
© www.soinside.com 2019 - 2024. All rights reserved.