Spring Boot日志
日志的用途:
1、系统监控
2、数据采集
3、日志审计
package com.bit.springiocdemo.controller;import org.slf4j.Logger;
import org.slf4j.LoggerFactory;
import org.springframework.web.bind.annotation.RequestMapping;
import org.springframework.web.bind.annotation.RestController;@RequestMapping("/logger")
@RestController
public class LoggerController {//声明一个日志对象 使用org.slf4j这个包下的private static Logger logger = LoggerFactory.getLogger("aaa");//private static Logger logger = LoggerFactory.getLogger(LoggerController.class);@RequestMapping("/print")public String print() {logger.info("我打印日志----logger");System.out.println("我打印日志---sout");return "1";}
}
打印出来日志格式就会spring自己打印出来的一样了,
这里16344是进程id,可通过任务管理器查到,aaa是日志对象名称,
LoggerFactory.getLogger(LoggerController.class);
通常这里写成类名,就知道是哪个类打印的日志了。
日志格式:
(第3个是进程id,图片里我写错了)
日志级别:
日志级别代表日志信息对应问题的严重性。
级别从高到低:
FATAL, ERROR, WARN, INFO, DEBUG, TRACE
FATAL:致命信息,需要立即被处理的系统级错误
ERROR:错误信息,级别较高的错误日志信息,但仍然不影响系统的继续运行,但长期有影响
WARN:警告信息,不影响使用,需要注意的问题
INFO:普通信息,用于记录应用程序正常运行时的一些信息,比如系统启动完成、请求处理完成。
DEBUG:调试信息,调试时的关键信息打印。
TRACE:追踪信息,比DEBUG更细粒度的信息。
我们一般只关注WARN和INFO。
@RequestMapping("/print")public String print() {logger.info("我打印日志----logger");logger.error("我是error级别日志");logger.warn("我是warn级别日志");logger.info("我是info级别日志");logger.debug("我是debug级别日志");logger.trace("我是trace级别日志");return "1";}
fatal没有打印日志方法,致命级别的信息需要立即处理,不需要通过日志来记录。
比info级别低的默认都不会打印,也可以通过配置来显示。
可以配置一个(这里展示的是在.properties中)
logging.level.root = debug就会显示到debug级别,
配置logging.level.root = trace就会显示到trace级别。
分目录设置日志级别
我们还可以这样设置(在.yml中)
logging:level:root: infocom:bit:springiocdemo:controller: trace
在com.bit.springiocdemo.controller这个路径下日志打印显示到trace级别,而其他路径显示到info级别。