Java日志实现思想总结

前言: 在项目重构中最重要的一部分就是日志信息存储以及错误信息定位,在这里总结下我们项目组的大佬的思路。

Java日志大致分为两类

1.传统日志写法

使用log4j或者logback框架对关键代码进行四种级别将日志输出到console窗口、文本文件、数据库等地方,以方便快速出现问题定位到程序出现BUG的地方。

使用 方式:
controller层的日志使用Log打印信息。
service层的日志使用数据库记录操作日志。
Java日志实现思想总结_第1张图片

2.Spring的AOP

使用SpringAop的切面对方法进行监控,可以将用户方法执行前后的请求参数,执行异常,返回结果记录到系统日志。,以方便用户操作出现异常的时候找到相应的方法。

对相应的架构层进行监控:
使用五大通知类型对controller层,service层进行统一监控。
Java日志实现思想总结_第2张图片

Java日志实现思想总结_第3张图片

以上两种方式的有优缺点:
第一种方式:
优点:

  • 对于程序出现的BUG可以精准锁定位置。

缺点:

  • 代码冗余,对关键代码进行监控会出现代码重复使代码冗余。
  • 难扩展,牵一发而动全身,出现问题想改需改很多处。
  • 高耦合,与代码的耦合度高。
  • 服务器宕机之后可能找不到输出的日志

第二种方式:

优点:

  • 低耦合,使用AOP切面思想实现,与代码进行分离 。
  • 扩展高,更改一处就可以修改全部。
  • 数据信息可以进行分类的入库。

缺点:

  • 对方法前后监控,无法精确到某个关键点,只能对方法返回进行监控。

总结思路:
对于一个项目来说,日志是重中之重的他的设计思路可以根据业务逻辑和运行环境去判断我们到底使用哪种方式进行,主要要做到出现问题可以快速定位问题所在以及可以做到提前预警通知,对于日志描叙尽量做到详细,以方便用户 去查看出现了什么问题。

ps: AOP可以做到的事情:

Java日志实现思想总结_第4张图片

你可能感兴趣的:(Java日志实现思想总结)