3.SpringBoot日志设置

推荐使用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,所以除非是异常日志,否则不会再出出现一堆日志信息,这样更加方便我们调试开发。

猜你喜欢

转载自blog.csdn.net/cc_want/article/details/80548969