文章参考
springboot配置日志
默认情况下,Spring Boot会用Logback来记录日志,并用INFO级别输出到控制台。
springboot默认已经配置了日志的信息
,在pom.xml中的加载路径是
spring-boot-starter-web 》 spring-boot-starter 》spring-boot-starter-logging 》logback-classic
因此,不需要额外再引入日志依赖jar包
添加日志的办法
案例一(在每个Controller中获取日志对象)
package com.hb.firstStudy.controller;
import com.hb.config.DataBaseConfig;
import com.hb.config.DevConfig;
import org.json.JSONException;
import org.json.JSONObject;
import org.slf4j.Logger;
import org.slf4j.LoggerFactory;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.beans.factory.annotation.Value;
import org.springframework.web.bind.annotation.*;
/**
* @RestController 表明控制器返回的值是一个 JSON字符串,所以不会去找到对应的JSP页面
* @author 黄彪
* 2018年9月6日
*/
@RestController
@RequestMapping("/customer")
public class CustomerController {
// 获取src/main/resources/application.properties 文件中的信息
@Value("${spring.datasource.username}")
private String mysqlPwd;
private Logger log = LoggerFactory.getLogger(this.getClass());
@RequestMapping("/test")
public String testCustomerRqest(){
System.out.println(dataBaseConfig.getName());
System.out.println(devConfig.getName());
log.error("test log function");
return "testCustomerRqest : " + mysqlPwd;
}
}
备注说明:所有的类中添加private Logger log = LoggerFactory.getLogger(this.getClass());
就能获取日志对象,但是如果每个都这么添加,还是比较麻烦的,最好是在一处添加即可
案例二
每次写新的类,就需要重新写logger ;有简单的方式,就是使用@Slf4j注解
首先是在pom中引入:
<!--可以引入日志 @Slf4j注解-->
<dependency>
<groupId>org.projectlombok</groupId>
<artifactId>lombok</artifactId>
</dependency>
package com.hb.firstStudy.controller;
import lombok.extern.slf4j.Slf4j;
import org.json.JSONException;
import org.json.JSONObject;
import org.slf4j.Logger;
import org.slf4j.LoggerFactory;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.beans.factory.annotation.Value;
import org.springframework.web.bind.annotation.*;
/**
* @RestController 表明控制器返回的值是一个 JSON字符串,所以不会去找到对应的JSP页面
* @author 黄彪
* 2018年9月6日
*/
@RestController
@RequestMapping("/customer")
@Slf4j
public class CustomerController {
// 获取src/main/resources/application.properties 文件中的信息
@Value("${spring.datasource.username}")
private String mysqlPwd;
@RequestMapping("/test")
public String testCustomerRqest(){
System.out.println(dataBaseConfig.getName());
System.out.println(devConfig.getName());
log.error("test log function");
return "testCustomerRqest : " + mysqlPwd;
}
}
如何解决编译器eclipse找不到log变量的问题?
直接修改配置文件
- SpringToolSuite4.ini 和 SpringToolSuite4.exe 放在同一层目录下面
- 修改 SpringToolSuite4.ini 文件,最后添加
-Xbootclasspath/a:lombok.jar
-javaagent:lombok.jar
使用向导
如果注解@Slf4j注入后找不到变量log,需要IDEA安装lombok插件,
File → settings → Plugins