一、logback日志的集成
Logback是由log4j创始人设计的又一个开源日志组件。目前,logback分为三个模块:logback-core,logback-classic和logback-access。是对log4j日志展示进一步改进
1. 日志的级别
> DEBUG < INFO < WARN < ERROR < OFF
>
> 日志级别由低到高: `日志级别越高输出的日志信息越少`
2. 项目中日志分类
> 日志分为两类
>
> 一种是rootLogger : 用来监听项目中所有的运行日志 包括引入依赖jar中的日志
>
> 一种是logger : 用来监听项目中指定包中的日志信息
3. java项目中使用
3.1 logback配置文件
> logback的配置文件必须放在项目根目录中 且名字必须为logback.xml
<?xml version="1.0" encoding="UTF-8" ?>
<configuration>
<!--定义项目中日志输出位置-->
<appender name="stdout" class="ch.qos.logback.core.ConsoleAppender">
<!--定义项目的日志输出格式-->
<!--定义项目的日志输出格式-->
<layout class="ch.qos.logback.classic.PatternLayout">
<pattern> [%p] %d{yyyy-MM-dd HH:mm:ss} %m %n</pattern>
</layout>
</appender>
<!--项目中跟日志控制-->
<root level="INFO">
<appender-ref ref="stdout"/>
</root>
<!--项目中指定包日志控制-->
<logger name="com.baizhi.dao" level="DEBUG"/>
</configuration>
重新启动项目,日志格式发生变化。
image.png
3.2 具体类中使用日志
如果不用logback.xml,想要在自己的代码中加日志:
第一种: private static final Logger logger = LoggerFactory.getLogger(UserController.class);
@Controller
@RequestMapping("/hello")
public class HelloController {
//声明日志成员
private static final Logger logger = LoggerFactory.getLogger(UserController.class);
@RequestMapping("/hello")
@ResponseBody
public String hello(){
System.out.println("======hello world=======");
logger.debug("DEBUG");
logger.info("INFO");
logger.warn("WARN");
logger.error("ERROR");
return "hello";
}
}
第二种:小辣椒中的@Slf4j
<dependency>
<groupId>org.projectlombok</groupId>
<artifactId>lombok</artifactId>
</dependency>
@Controller//如果要完成页面的需求,就不能用@RestController
@RequestMapping("user")
@Slf4j
public class UserController {
@Autowired
private UserService userService;
//findAll
@GetMapping("/findAll")
public String findAll(Model model){
log.debug("DEBUG");
log.info("INFO");
log.warn("WARN");
log.error("ERROR");
List<User> users = userService.findAll();
model.addAttribute("users",users);
return "showAll";
}
//save
@GetMapping("/save")
public String save(User user){
userService.save(user);
return "redirect:/user/findAll";
}
}
image.png
3.3 使用默认日志配置
logging:
level:
root: info
com.nono.dao: debug
com.nono.controller: debug
path: /Users/nono/aa.log
file: bbb.log