日志代码(小白学习如何打日志)
一、Java打日志的基础
以前自己自学的时候,排查问题只会写下面的代码:
try { // doSomething } catch (Exception e) { e.printStackTrace(); } ---------- // 查看某个数据的值时: System.out.println(xxxx);
去到公司就发现上面的代码全不见了,剩下的是:
LOGGER.info("begin to run Java3y:{}", id); ---- LOGGER.error("excepiton occurs when run Java3y {}, exception{}", id, e.toString());
如果使用e.printStackTrace();的话,打印在控制的信息分析不方便:
而我们将信息分等级和时间记录在服务器的磁盘上,有问题了就可以根据对应的信息去查找相关的日志(这样排查起来是十分方便的):
我们再来看一下一般的日志长什么样的:
例如:现在有人来反馈某某某用户好像收不到短信,给出发送时间和用户ID,我们就可以在日志上找出该用户在我们系统的发送状态(例如图上的:state:81,我们就认为是发送成功状态)
那么,问题来了,我们在哪打日志?《手册》上其实已经给出了答案:
1.1什么叫做 打点 ?
打日志最常见的就是用来打印出程序执行时的相关信息,用于快速定位问题和排查问题。我一开始也是这么理解的,但是其实还可以延伸一下。
我现在搞的那个系统,我们还使用日志在系统的执行链路上打点。比如说,我现在要推送一条通知消息,通知消息其实就是下面这种: