要记好log,确实是一件显功底的事。平时在写代码的时候,往往不注意这桩事儿,但却又往往在项目上线后被没条理的,莫名其妙的日志弄的头昏脑胀。
下面,我们就来看下几个规则,也属作者的经验之谈
1. 只记录代码的异常,不记录业务上的异常
”比如登录用户名不存在“ 这样的异常,纯属浪费磁盘空间
2. 在异常中记录本次方法内的数据
我们经常会遇到在方法中由于数据所产生的异常,比如我们会看到这样的日志
could not charge money from account
如果我们记录为
Tried to charge 20 EUR from account 1234567890 but 10 EUR available” compared to “Charge failed”
我们就很直观的能知道错误的原因
3. 将异常产生的原因记录在log中
4. 注意log的级别。
5. 不要重复的记录日志
这样的日志由于在UserServiceException中会有记录,那么前面的LOG.error就是多余。
6. 不要用stdout
7. 注意Log的格式和语法,别记录的log到时候火星人都看不懂。
下面,我们就来看下几个规则,也属作者的经验之谈
1. 只记录代码的异常,不记录业务上的异常
”比如登录用户名不存在“ 这样的异常,纯属浪费磁盘空间
2. 在异常中记录本次方法内的数据
我们经常会遇到在方法中由于数据所产生的异常,比如我们会看到这样的日志
could not charge money from account
如果我们记录为
Tried to charge 20 EUR from account 1234567890 but 10 EUR available” compared to “Charge failed”
我们就很直观的能知道错误的原因
3. 将异常产生的原因记录在log中
4. 注意log的级别。
5. 不要重复的记录日志
catch (NoUserException e) {
LOG.error("No user available", e);
throw new UserServiceException("No user available", e);
}
这样的日志由于在UserServiceException中会有记录,那么前面的LOG.error就是多余。
6. 不要用stdout
7. 注意Log的格式和语法,别记录的log到时候火星人都看不懂。