日志规范说明

日志分级
  1. ERROR:系统发生了错误事件,但仍然不影响系统的继续运行。系统需要将错误或异常细节记录ERROR日志中,方便后续人工回溯解决。
  2. WARN: 系统在业务处理时触发了异常流程(参数验证不过),但系统可恢复到正常态,下一次业务可以正常执行。如程序调用了一个旧版本的接口,可选参数不合法,非业务预期的状态但仍可继续处理等
  3. INFO: 记录系统关键信息,旨在保留系统正常工作期间关键运行指标,开发人员可以将初始化系统配置、业务状态变化信息,或者用户业务流程中的核心处理记录到INFO日志中,方便日常运维工作以及错误回溯时上下文场景复现
  4. DEBUG: 可以将各类详细信息记录到DEBUG里,起到调试的作用,包括参数信息,调试细节信息,返回值信息等。
日志优先级别标准顺序

ALL < TRACE < DEBUG < INFO < WARN < ERROR < FATAL < OFF
如果日志级别设置 INFO,只有输出级别为 INFO、WARN,后面的日志才会正常输出。

日志格式
%date{yyyy-MM-dd HH:mm:ss.SSS} [%X{requestId}] %contextName [%thread] %-5level %logger{36} - %msg%n
  • %date{yyyy-MM-dd HH:mm:ss.SSS} 日志时间
  • %X{requestId} 请求id
  • %contextName项目名称
  • %thread线程名称
  • %-5level日志级别
  • %logger{36}类名全路径
  • %msg%n日志信息
    例子
2021-05-19 16:53:39.140 [f217275ecc13452081db9396c3e7c4cf] shuyun-prize-admin [http-nio-8048-exec-3] INFO  c.s.p.service.impl.TUserServiceImpl - loginUser.authOrgId:[3, 9, 10, 12, 15, 21, 25, 30, 31, 37, 38, 39, 40, 41, 42, 43, 44, 45, 413]
2021-05-19 16:53:39.140 [f217275ecc13452081db9396c3e7c4cf] shuyun-prize-admin [http-nio-8048-exec-3] INFO  c.s.p.web.control.AuthController - 登陆用户所在大区业务部信息:3,9,10,12,15,21,25,30,31,37,38,39,40,41,42,43,44,45,413
2021-05-19 16:53:39.141 [f217275ecc13452081db9396c3e7c4cf] shuyun-prize-admin [http-nio-8048-exec-3] INFO  c.s.p.web.control.AuthController - 登录成功,loginId=123
2021-05-19 16:53:39.642 [4775914915c8442fbc8a6321eb276f73] shuyun-prize-admin [http-nio-8048-exec-5] INFO  c.s.p.service.impl.MenuServiceImpl - 从M获取菜单
日志使用规约
  1. 使用lombok的注解@Slf4j
@Slf4j
public class Test {
	
	public void test() {
		log.info("");
	}

}
  1. 不允许记录日志后又抛出异常,因为这样会多次记录日志,只允许记录一次日志,应抛出异常,顶层打印一次日志。
try {

} catch (Exception e) {
log.error("错误信息", e); //错误			
throw e;
}
  1. 输出Exceptions的全部堆栈信息,但是不能使用e.printStackTrace()
//错误例子,直接使用
e.printStackTrace()
// 错误例子, 丢失掉StackTrace信息 
log.error(e.getMessage()); 
// 错误例子,丢失掉StackTrace信息 
log.error("Bad things : {}", e.getMessage()); 
// 正确例子 
log.error("Bad things : {}",e); 
  1. 禁止使用system.out用于日志记录
public void test() {
System.out.println("日志信息");//错误

}
  1. 禁止异常捕获中使用info日志级别,在查找日志时不便于查找
try {

} catch (Exception e) {
log.info("错误信息", e); //错误			
}
  1. 日志输出必须使用占位符,如果使用字符串拼接,当日志不打印也会造成资源浪费
//错误 
log.error("错误信息,id="+id); 
//正确
log.error("错误信息,id= {}", id); 
  1. 输出POJO类时必须重写toString方法,使用lombok注解@ToString
@Data
@ToString
public class User {
	private String name;
	private int age;

}
//log.info("用户信息{}",user);
  1. 禁止大量无效重复的日志输出
for (int i = 0; i < 1000; i++) {
	log.info("日志信息");
}
  1. 不可以将敏感业务信息记录入日志文件
  2. 禁止没有业务信息的日志
public void getUser() {
log.info("开始查询用户");
//业务处理
log.info("查询用户结束");
}
基本格式

log.error()

log.error("[当前方法名]错误信息:{}",e);
//例子
log.error("[createMember]创建会员错误{}",e);

log.info()

log.info("业务信息,参数信息:[{}],参数信息:[{}]",参数1,参数2);
//例子
log.info("总部接口验证内码,内码:[{}],外码:[{}]", code1, code2);
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 1
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值