日志记录最佳实践

对于现在的应用程序来说,日志的重要性是不言而喻的。很难想象没有任何日志记录功能的应用程序运行在生产环境中。日志所能提供的功能是多种多样的,包括记录程序运行时产生的错误信息、状态信息、调试信息和执行时间信息等。在生产环境中,日志是查找问题来源的重要依据。应用程序运行时的产生的各种信息,都应该通过日志 API 来进行记录。

我们要记录什么?

完成某项操作所需的时间

通过它可以跟踪为什么系统响应变慢或者太快
处理完一个请求所耗费的时间,精确到毫秒
执行数据库查询的时间
从磁盘或者存储介质获取数据的时间
等等

异常和堆栈跟踪

Sessions
知道一个问题是由谁引起的非常重要,因此在日志中使用会话标识符就变得必不可少。它可以简单到是一个 IP 地址或者是一个更复杂的 UUID,只要能区分不同的请求者就足够。
版本号

使用的最佳实践

使用第三方类库

从发展方向上看,应该选择slf4j和logback。 当根据网上的测试,还是log4j比较性能比较好。
检查日志是否可以被记录

 if (LOGGER.isDebugEnabled()) { 
    LOGGER.debug("This is a message."); 
 }

在适当的级别进行log

FATAL:导致程序提前结束的严重错误。
ERROR:运行时异常以及预期之外的错误。
WARN:预期之外的运行时状况,不一定是错误的情况。
INFO:运行时产生的事件。
DEBUG:与程序运行时的流程相关的详细信息。
TRACE:更加具体的详细信息。
谨慎修改配置文件

第三方包的信息

自然是配角,不要显示大量的第三方包中的debug信息。只显示warning以上信息。

日志包括线程和时间戳信息。

方便多线程下的调试。

日志包含上下文信息。

系统出错时,各个参数的信息,操作人员的信息。

日志包含充分的信息

比如不应该为null的为null了;某个范围的设置值超出范围。

你应该用机器可以解析的格式记录日志

利用使用其他工具进行分析。

不同业务领域使用不同的日志

比如系统登录日志,邮件发送日志,订单建立日志等等。

参考

Java开源日志框架大比拼
写给开发者:记录日志的10个建议
Java 日志管理最佳实践
55最佳实践系列:Logging最佳实践

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

陈振阳

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值