怎么使用上面的库?例如我需要写一个test.sh脚本, 首先 source 'log.sh' 初始化日志: log_init "/home/users/test" "test" "8" "2" 写日志: log_trace "$0" "$LINENO" "'this line is trace log: %s' 'test log'" log_warning "$0" "$LINENO" "'this line is trace log: %s' 'test log'" 参数一:
$0 表示当前执行的脚本 注意:如果test.sh还调用了其他脚本,例如source了一个functions.sh,
在functions.sh这个脚本中也需要写日志,这时第一个参数我们肯定希望写入“functions.sh”,
但使用$0,得到的还是test.sh,这时你需要使用环境变量${BASH_SOURCE[0]}。 兼容两种情况的写法就是,${BASH_SOURCE[0]-$0}(当然这里运行的环境是bash)。
参数二: $LINENO 表示当前执行的代码行,这两个参数只传这两个值即可。
参数三: "'this line is trace log: %s' 'test log'" 作为第三个参数,采用的格式是C语言printf函数使用的格式,不过参数以空格分隔。 注意:由于Shell传参的原因,第三个参数的一定要以单引号包含起来,里面的格式化输出字符串,以及参数要以双引号包含起来,并且之间以空格分隔。
最终写入到日志文件或终端的日志信息为: [TRACE]: logid[1437385728_18020]: 2015-07-20 17:48:48 test_log.sh 6:this line is trace log: test log [WARNING]: logid[1437385728_18020]: 2015-07-20 17:48:48 test_log.sh 7:this line is trace log: test log