SpringBoot日志

目录

日志

日志使用

观察日志结构

打印日志

日志框架

门面模式(外观模式)

SLF4J框架

日志格式

日志级别

日志配置

配置日志级别

配置控制台颜色

配置日志格式

日志持久化

日志文件分割

更简单的方式---Lombok框架支持


日志

日志作用:

1.定位和发现问题

2.监控系统

eg:设定响应时间、超过阈值报警

3.数据采集

   eg:统计页面浏览量、停留量,为用户做推荐

4.日志审计

eg:判断安全攻击,处理安全隐患

日志使用

观察日志结构

SpringBoot日志_第1张图片

打印日志

Spring集成了日志框架:1.定义日志对象  2.打印日志

SpringBoot日志_第2张图片

日志框架

SpringBoot日志_第3张图片

门面模式(外观模式)

门面模式:又称为外观模式。提供了一个统一的接口,访问子系统中的一群接口。

SpringBoot日志_第4张图片

门面模式包含的两种角色:

外观角色(Facade):门面角色,系统对外的统一接口

子系统角色(Subsystem):一个个单独的集合,每个集合并不知道外观角色的存在

eg:医院看病需要挂号、门诊、取药,患者觉得复杂,找到接待人员处理全部过程。患者没有走流程,接待人员完成了所有流程。

举例:

门面模式实现开关灯

SpringBoot日志_第5张图片

优点:

解耦合、提高灵活性、提高安全性。

SLF4J框架

SLF4J是其他日志框架的门面,为日志提供统一的API接口

日志格式

SpringBoot日志_第6张图片

日志级别

日志的级别从高到低依次为:FATAL、ERROR、 WARN、INFO、DEBUG、TRACE
FATAL:致命信息,表示需要立即被处理的系统级错误。
ERROR:错误信息,级别较高的错误日志信息,但仍然不影响系统的继续运行。
WARN:警告信息,不影响使用,但需要注意的问题
INFO:普通信息,用于记录应用程序正常运行时的一些信息,例如系统启动完成、请求处理完成等。
DEBUG:调试信息,需要调试时候的关键信息打印。
TRACE:追踪信息,比DEBUG更细粒度的信息事件

SpringBoot日志_第7张图片

Spring的默认级别,后面的dubug和trace没有打印

日志配置

配置日志级别

通过yml配置显示debug日志:

SpringBoot日志_第8张图片

分目录打印,Spring日志只打印info,项目日志打印debug

SpringBoot日志_第9张图片

配置控制台颜色

-Dspring.output.ansi.enabled=ALWAYS

SpringBoot日志_第10张图片

apply+ok后,重启控制台可以看到设置后的效果

配置日志格式

下面分别是控制台日志格式和文件格式

​logging.pattern.console​
logging.pattern.file

日志持久化

类比数据保存在数据库中是一种持久化的方式,日志保存在文件中也是一种持久化的方式。

logging.file.name

如果没有加上路径,默认放在当前项目下。

SpringBoot日志_第11张图片

添加上相对路径

SpringBoot日志_第12张图片

logging.file.path

这种方式只能设置日志的路径,文件名是固定的Spring.log

SpringBoot日志_第13张图片

日志文件分割

logging.logback.rollingpolicy.max-file-size

​
logging:
  file:
    name: logger/ioc.log

  logback:
    rollingpolicy:
      max-file-size: 1KB

把ioc.log文件分割为大小为1KB的文件,文件不是达到1KB立即分割(以字符),而是以行进行分割,可以确保分割出来的文件每行都是完整的。

SpringBoot日志_第14张图片

通常企业中文件分割的大小为200M或者500M或者其它规定的大小

更简单的方式---Lombok框架支持

@slf4j 会帮我们找到类和自动创建一个对象

SpringBoot日志_第15张图片

你可能感兴趣的:(JavaEE,spring,boot,后端,java)