目录
日志作用:
1.定位和发现问题
2.监控系统
eg:设定响应时间、超过阈值报警
3.数据采集
? ?eg:统计页面浏览量、停留量,为用户做推荐
4.日志审计
eg:判断安全攻击,处理安全隐患
Spring集成了日志框架:1.定义日志对象? 2.打印日志
门面模式:又称为外观模式。提供了一个统一的接口,访问子系统中的一群接口。
门面模式包含的两种角色:
外观角色(Facade):门面角色,系统对外的统一接口
子系统角色(Subsystem):一个个单独的集合,每个集合并不知道外观角色的存在
eg:医院看病需要挂号、门诊、取药,患者觉得复杂,找到接待人员处理全部过程。患者没有走流程,接待人员完成了所有流程。
举例:
门面模式实现开关灯
优点:
解耦合、提高灵活性、提高安全性。
SLF4J是其他日志框架的门面,为日志提供统一的API接口
日志的级别从高到低依次为:FATAL、ERROR、 WARN、INFO、DEBUG、TRACE
FATAL:致命信息,表示需要立即被处理的系统级错误。
ERROR:错误信息,级别较高的错误日志信息,但仍然不影响系统的继续运行。
WARN:警告信息,不影响使用,但需要注意的问题
INFO:普通信息,用于记录应用程序正常运行时的一些信息,例如系统启动完成、请求处理完成等。
DEBUG:调试信息,需要调试时候的关键信息打印。
TRACE:追踪信息,比DEBUG更细粒度的信息事件
Spring的默认级别,后面的dubug和trace没有打印
通过yml配置显示debug日志:
分目录打印,Spring日志只打印info,项目日志打印debug
-Dspring.output.ansi.enabled=ALWAYS
apply+ok后,重启控制台可以看到设置后的效果
下面分别是控制台日志格式和文件格式
?logging.pattern.console?
logging.pattern.file
类比数据保存在数据库中是一种持久化的方式,日志保存在文件中也是一种持久化的方式。
logging.file.name
如果没有加上路径,默认放在当前项目下。
添加上相对路径:
logging.file.path
这种方式只能设置日志的路径,文件名是固定的Spring.log
logging.logback.rollingpolicy.max-file-size
?
logging:
file:
name: logger/ioc.log
logback:
rollingpolicy:
max-file-size: 1KB
把ioc.log文件分割为大小为1KB的文件,文件不是达到1KB立即分割(以字符),而是以行进行分割,可以确保分割出来的文件每行都是完整的。
通常企业中文件分割的大小为200M或者500M或者其它规定的大小
@slf4j 会帮我们找到类和自动创建一个对象