在shell脚本中打出有跟系统log差不多的log

如题,在linux中有时候我们需要自己维护自己的一套log系统,用来调试以及后期发现问题解决问题,log是必不可少的。

使用系统的log工具

linux大多有两种系统工具,可以再make menuconfig中找到一种是busybox,一种是systemctl,这两种工具各有所长吧,个人感觉busybox更小只有几M,剪裁好了很小的可以压缩到1M左右(如果你想的话),但是busybox中的系统工具都是“简化版本”有很多指令的很多参数都是不支持的,
而systemctl虽然功能强大但是比较大占用空间大,http://blog.csdn.net/dubendi/article/details/78792169 (systemctl说明链接)
而在这两种系统工具下都有自己的log指令,busybox下有logger,而systemctl下有systemd-cat(journalctl)
这两条指令都会把系统log打到一个文件中,开发者可以自己去定义修改这些文件的路径,而我们再程序或者脚本中可以直接快速的使用这两条指令将log打到系统log中,这样log看起来是连续的,更方便检查问题点周围发生的事情。
logger -t target
system-cat -t target
target为自己定义的标签
logger中会打出如下格式的log 日期 user log等级 以及log标签
Feb 11 17:24:35 buildroot user.notice /usr/bin/system_state.sh: Mem: 220112K used, 3676K free, 148K shrd, 0K buff, 132128K cached
日期 user log等级 log标签 log
这样我们就能更方便快捷的查看log,分析问题

自定义log打印方式

如果我们希望有些log单独打到一些文件中可以再脚本中按照如下方式打印log
LOG_FILE="/XXXX.log"
function logit() 
{
    echo "[${USER}][`date`] - ${*}" >> ${LOG_FILE}
}
logit "Delete old logs" 

就可以在定义的log文件中看到log如下
[root][Mon Feb 26 13:49:58 +08 2018] - Delete old logs
如果有需求,可以增加target的打印,以及更多的信息打印

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值