菜单
推荐使用slf4j日志框架,SpringBoot已经内置了,但是这里额外教大家一个非常时尚好用的框架,追随SpringBoot的核心思想,一切从简,打造真正的企业级开发环境
1.首先打开pom.xml文件,在dependencies节点下追加
<dependency>
<groupId>org.projectlombok</groupId>
<artifactId>lombok</artifactId>
<version>1.14.4</version>
</dependency>
2.然后打开idea的顶部菜单,File > Settings > Plugins 在搜索框中输入lombok,找到以下框架
3.安装完成后重启IDEA,点击restart
4.重启完成后,打开Application类,在类名上加上@Slf4j注解
并将System.out.println("服务启动完成!") 改为 log.debug("服务启动完成!")
最终,Application类的内容如下
@Slf4j
@SpringBootApplication
public class Application extends SpringBootServletInitializer implements CommandLineRunner {
@Override
protected SpringApplicationBuilder configure(SpringApplicationBuilder builder) {
//return super.configure(builder);
return builder.sources(Application.class);
}
public static void main(String[] args) {
SpringApplication.run(Application.class, args);
}
@Override
public void run(String... strings) throws Exception {
//System.out.println("服务启动完成!");
log.debug("服务启动完成!");
}
}
解释一下@Slf4j的作用
1.打开项目的target目录,找到Application.class文件
2.这里可以看到文件内容如下:
3.对比Applicaion.java你会发现,在Applicaiton.class中少了@Slf4j注解,类中多了一行代码
private static final Logger log = LoggerFactory.getLogger(Application.class);
为什么会出现这种现象呢?正是lombok发挥的作用,@Slf4j是编译时注解,只在编译期间有效,编译完成后,类会自动生成代码,相当于代码生成器
5.在application.properties中添加log配置
#日志配置
logging.level.root=WARN
logging.level.com.fcibook.springboot=DEBUG
#springframework.web日志以DEBUG级别输出
logging.level.org.springframework.web=WARN
#hibernate日志以ERROR级别输出
logging.level.org.hibernate=ERROR
logging.file=/logs/my.log
logging.pattern.console=%d{yyyy/MM/dd-HH:mm:ss} [%thread] %-5level %logger- %msg%n
logging.pattern.file=%d{yyyy/MM/dd-HH:mm} [%thread] %-5level %logger- %msg%n
其中注意第二行,这里填写的是我们项目的包名,代表的含义是在当前包下的所有类的日志输出级别,在这里我定义为DEBUG,只要是DEBUG以上级别的日志都会输出
6.运行
运行后,我们看见日志已经打印出来了,同时因为我们设置了spring的日志级别是WARN,所以除非是异常日志,否则不会再出出现一堆日志信息,这样更加方便我们调试开发。
------------------------------------------------