目录
日志文件可以帮助我们查看程序的错误原因,帮助我们快速定位到问题
除了可以发现和定位问题之外,我们还可以通过日志实现以下功能:
1、记录用户登录日志,方便分析用户是正常登陆还是恶意破解用户
2、记录系统的操作日志,方便数据恢复和定位操作人
3、记录程序的执行时间,方便为以后优化程序提供数据支持
SpringBoot内置了日志框架,我们可以自定义打印日志
自定义日志打印
SpringBoot内置了日志框架slf4j,我们可以直接利用这个框架
1、获取日志对象,这就要使用到日志工厂LoggerFactory,这个类是属于slf4j包的
2、使用日志对象提供的方法打印日志
@Controller
public class User {
//1、得到日志对象
private static Logger logger = LoggerFactory.getLogger(User.class);
//2、利用日志对象提供的方法
@PostConstruct
public void print() {
logger.info("hello");
}
}
格式说明:
日志级别
日志级别是为了筛选符合目标的日志信息的,将日志设置多个级别,可以选择某一个级别的日志信息来查看
日志级别的分类:
- trace:微量少许,级别最低
- debug:需要调试的关键信息
- info:普通的打印信息
- warn:警告,不影响使用,但是要注意的信息
- error:错误信息
- fatal:致命的,因为代码异常导致程序退出执行的事件(不需要自定义,程序会自己显示)
日志级别配置
默认日志级别是info
@Controller
public class User {
//1、得到日志对象
private static Logger logger = LoggerFactory.getLogger(User.class);
//2、利用日志对象提供的方法
@PostConstruct
public void print() {
logger.trace("trace");
logger.debug("debug");
logger.info("info");
logger.warn("warn");
logger.error("error");
}
}
使用logging.level配置日志级别
1、配置全局的日志级别:
logging.level.root=debug
设置全局的日志级别为debug
2、设置局部文件夹的日志级别
logging.level.文件夹
logging.level.com.example.demo=warn
日志持久化
我们将日志以文件的形式记录在磁盘上,就可以随时查看了
配置存储文件路径:
logging:
file:
path: C:\Users\30283\Desktop
程序运行后会在桌面上创建文件
文件内存放的就是日志内容
配置文件名称:
logging: file: name: C:\Users\30283\Desktop\Spring-log.log
Lombok
每一次我们都要获取日志对象,我们可以使用lombok来更加简单的输出
1、添加Lombok依赖
安装插件EditStarters,可以更快速的增加依赖
2、在pom.xml的界面,右键-》generate-》EditStarts 选择添加Lombok
依赖就导入了
3、使用注解 @Slf4j
@Controller
@Slf4j
public class Control {
@PostConstruct
public void print() {
log.trace("trace");
log.debug("debug");
log.info("info");
log.warn("warn");
log.error("error");
}
}
@Slf4j注解,可以起到创建日志对象的作用,变量名为log,可以直接使用变量名,这个变量名是lombok提供的
Lombok原理
我们打开target中运行生成的class文件
也就是说,lombok会自动生成这个代码来获取日志对象,然后编译生成class文件
private static final Logger log = LoggerFactory.getLogger(Control.class);
Lombok还有其他注解: