1.日志分类
2.默认使用
默认使用logback与slf4j作为底层默认日志
但是由于日志是系统启动就需要使用,所以与其他的自动配置不同,自动配置是后来使用的,而日志是使用监听器配置好的。
ApplicationListener
3.日志级别
1.级别介绍
SpringBoot默认日志级别是info
- ALL 全部日志
- TRACE 追踪框架详细流程日志,一般不用
- debug 开发调试期间 记录
- info 一般日志
- warn 警告日志
- error 错误日志
- fatal 致命日志
- off 关闭日志
debug
2.日志级别调整
单独设置
logging.level.root 不设置都是使用root的日志级别,
如果调整日志级别就调整logging.level.root就行
调整单个包的日志级别就将root替换为包全限定路径
按组设置
logging.group.组名=全限定包名 逗号隔开
logging.level.组名=日志级别
// 设置 com.atguigu.logging.controller包下的日志打印为warn级别logging.level.com.atguigu.logging.controller=warnlogging.group.abc=com.atguigu.logging.controller,com.atguigu.logging.controller
logging.level.abc=debug
4.日志格式解析与修改
1.默认格式
2024-03-08T11:17:27.896+08:00 INFO 8088 --- [ main] c.at.boot302demo.Boot302DemoApplication : Starting Boot302DemoApplication using Java 17.0.10 with PID 8088
时间 日志级别 进程ID(一个项目就是一个进程) [线程名称] 产生日志的类名:消息
2.修改
logging.pattern.console 控制台日志修改
logging.pattern.file 文件日志修改
5.日志使用
1.JAVA调用
使用logger工厂获取logger对象,然后使用logger对象调用info或者相应的方法
Logger logger = LoggerFactory.getLogger(getClass());
logger.info("日志代码测试");
// 添加参数的话 :{} 即可 如果有异常,异常放最后面,就会打印异常
logger.info("日志代码测试 row:{}",row,e);
2.日志的存储输出(日志输出到文件而不是只输出到控制台)
- 只写名字,就生成到当前项目同位置的demo
- 名字+路径 注意这个是双斜杠,而不是反斜杠
logging.file.name=logSave.log
logging.file.name=C://log//logSave.log
3.文件归档与滚动切割
归档:日志按天存储到相应文件中
切割:保证文件的大小
logging.logback.rollingpolicy.max-file-size=10MB
# 归档 文件名.%d日期 %i 代表第几个文件 gz Linux的压缩包格式
logging.logback.rollingpolicy.file-name-pattern=${LOG_FILE}.%d{yyyy-MM-dd}.%i.gz
4. 自己写配置文件放在resources目录下
logback-spring.xml
log4j2-spring.xml
log4j2.xml
5.框架更换
先排除默认框架,然后添加框架
<dependency><groupId>org.springframework.boot</groupId><artifactId>spring-boot-starter</artifactId><exclusions><exclusion><groupId>org.springframework.boot</groupId><artifactId>spring-boot-starter-logging</artifactId></exclusion></exclusions></dependency><dependency><groupId>org.springframework.boot</groupId><artifactId>spring-boot-starter-log4j2</artifactId></dependency>