日志规范笔记

本文涉及的产品
日志服务 SLS,月写入数据量 50GB 1个月
简介: 日志规范笔记

日志规范笔记

日志级别

日志是有级别的。针对不同的场景,日志被分为五种不同的级别, 按照重要程度由低到高排序


  • DEBUG: 级别曰志记录对调试程序有帮助的信息。
  • INFO: 级别日志用来记录程序运行现场,虽然此处并未发生错误,但是对排查其他错误具有指导意义。
  • WARN: 级别日志也可以用来记录程序运行现场,但是更偏向于表明此处有出现潜在错误的可能。
  • ERROR: 级别日志表明当前程序运行发生了错误,需要被关注。但是当前发生的错误,没有影响系统的继续运行。
  • FATAL: 级别曰志表明当前程序运行出现了严重的错误事件,并且将会导致应用程序中断。


可以看出,以上不同级别的日志优先级和重要性不同,因此在打印日志时针对不同的日志级别要有不同的处理方式。


日志处理方式

预先判断日志级别


对 DEBUG 、INFO 级别的日志,必须使用条件输出或者使用占位待的方式打印。该约定综合考虑了程序的运行效率和日志打印需求。

// 使用条件判断形式 & 使用占位符形式
if(logger.isDebugEnabled()){
  logger.debug("the error is {}", e.getMessage())
}


避免无效日志打印


生产环境禁止输出 DEBUG 曰志且有选择地输出使用 INFO日志。


使用 INFO、WARN 级别来记录业务行为信息时,一定要控制日志输出量,以免磁盘空间不足。同时要为曰志文件设置合理的生命周期, 及时清理过期的日志。


避免重复打印,务必在日志配置文件中设置 additivity=false ,示例如下

<logger name= "com.taobao" additivity=” false" >


区别对待错误日志


WARN 、ERROR 都是与错误有关的日志级别,但不要一发生错误就笼统地输出 ERROR 级别日志。一些业务异常是可以通过引导重试就能恢复正常的, 例如用户输入参数错误。在这种情况下,记录日志是为了在用户咨询时可以还原现场, 如果输出为 ERROR 级别就表示一旦出现就需要人为介入, 这显然不合理。所以, ERROR 级别只记录系统逻辑错误、异常或者违反重要的业务规则, 其他错误都可以归为 WARN 级别。

保证记录内容完整


曰志记录的内容包括现场上下文信息与异常堆栈信息, 所以打印时需要注意以下两点:


  1. 记录异常时定要输出异常堆栈, 例如 logger.error(“error is {}”, e.getMessage(), e);
  2. 曰志中如果输出对象实例,要确保实例类重写 toString 方法,否则只会输出对象的 hashCode 值, 没有实际意义。
相关实践学习
日志服务之使用Nginx模式采集日志
本文介绍如何通过日志服务控制台创建Nginx模式的Logtail配置快速采集Nginx日志并进行多维度分析。
目录
相关文章
|
4月前
|
存储 监控 数据库
Django 后端架构开发:高效日志规范与实践
Django 后端架构开发:高效日志规范与实践
82 1
|
7月前
|
存储 监控 Cloud Native
|
Java 测试技术 Docker
Spring Boot 学习研究笔记(十九)-docker部署SpringBoot 日志目录挂载
Spring Boot 学习研究笔记(十九)-docker部署SpringBoot 日志目录挂载
535 0
|
4月前
|
存储 监控
系统日志规范问题之业务执行日志的定义如何解决
系统日志规范问题之业务执行日志的定义如何解决
|
4月前
|
监控 测试技术 数据库
系统日志规范问题之摘要日志的定义如何解决
系统日志规范问题之摘要日志的定义如何解决
|
3月前
|
监控 前端开发 开发者
前端代码规范 - 日志打印规范
前端代码规范 - 日志打印规范
|
4月前
|
Java 应用服务中间件 HSF
Java应用结构规范问题之配置Logback以仅记录错误级别的日志到一个滚动文件中的问题如何解决
Java应用结构规范问题之配置Logback以仅记录错误级别的日志到一个滚动文件中的问题如何解决
|
4月前
|
Java 应用服务中间件 HSF
Java应用结构规范问题之配置Logback以在控制台输出日志的问题如何解决
Java应用结构规范问题之配置Logback以在控制台输出日志的问题如何解决
|
4月前
|
Java 应用服务中间件 HSF
Java应用结构规范问题之AllLoggers接口获取异常日志的Logger实例的问题如何解决
Java应用结构规范问题之AllLoggers接口获取异常日志的Logger实例的问题如何解决
|
4月前
|
运维 监控 安全
系统日志规范问题之日志打印等级的DEBUG的定义如何解决
系统日志规范问题之日志打印等级的DEBUG的定义如何解决
下一篇
DataWorks