linux 脚本 日志文件,在linux下用脚本输出日志

在用脚本实现模块功能时,往往涉及到日志功能,希望要实现的效果是用一个 write_log 命令,给一条出错消息作为输入,write_log 记录日志时自动加上日志级别、时间戳、脚本文件名和行号。形如:

[INFO] 2012-06-26 16:12:50 do_log @[test_log.sh:4]

时间戳、脚本文件名都比较容易获取,但是行号就有点麻烦。shell 中的 $LINENO 变量只能展开成当前行的行号,如果把 write_log 实现成函数的话,那么在函数使用 $LINENO,只能展开为函数体所在的行号,这不是我们所需要的。

这里可以用到linux系统下给命令指定别名alias命令,可以解决这一问题。

#! /bin/sh

function write_log()

{

local LOG_LEVEL=$1

local LOCATION=$2

local LOG_FILE=$3

local MESSAGE=$4

echo [$LOG_LEVEL] `date +%F" "%H:%M:%S` $MESSAGE @[$LOCATION] >>$LOG_FILE

}

# 这里只实现4个级别的日志

alias log_debug='write_log "DBG" "$0:$LINENO" my_log.log'

alias log_info='write_log "INF"  "$0:$LINENO" my_log.log'

alias log_warn='write_log "WRN" "$0:$LINENO" my_log.log'

alias log_err='write_log "ERR" "$0:$LINENO" my_log.log'

然后只要使用命令 log_err 或者 log_debug 等命令输出日志即可,如使用

log_err "an error occur" 则可以在my_log.log 文件中得到形如以下的信息

[ERR] 2012-06-26 16:26:56 an error occur @[test_log.sh:4]

特别注意: 使用该功能的需要在脚本开头写上 #! /bin/sh 或者 #! /bin/bash --posix

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值