1.什么是日志
日志是一种工具,用来记录程序在运行时发生了什么事情。所以如上图所示,日志一般包含打印日志的时间,日志的级别,启动程序的进程id,哪一个线程打印的,哪一个类打印的日志,日志的内容。
2.如何打印一个日志
@RestController
public class loggController {
private static Logger logger = LoggerFactory.getLogger(loggController.class);
@PostConstruct
public void print(){
System.out.println("日志打印");
logger.info("日志打印");
}
}
利用spring中提供的打印日志的类和我们使用普通的打印两种方法去打印。
可以明显的看到,使用专业的日志框架去打印,日志会更全面。
3.日志的框架
slf4j框架,但是slf4j并不是真实由它去实现的,而是它下面的log4j,logback等去实现的。slf4j只是一个门面,具体实现是交给下面的框架,这种设计模式称为门面模式。
门面模式(外观模式)
提供一个统一的接口,用来访问子系统中的一群接口。主要特征是定义一个高层接口,让子系统更容易使用。
4.日志的级别
FATAL:致命信息,需要立即进行处理。
ERROR:错误信息,级别较高的错误日志信息,但不影响系统整体的运行。
WARN:警告信息,需要注意,但是不影响使用。
INFO:普通信息,用来记录系统正常运行时的一些信息。
DEBUG:调试信息,调试时候的关键信息打印。
TRACE:追踪信息,比debug更细的信息,一般不使用除非包含特殊含义。
@RestController
public class loggController {
private static Logger logger = LoggerFactory.getLogger(loggController.class);
@PostConstruct
public void print(){
logger.error("我是error");
logger.warn("我是warn");
logger.info("我是info");
logger.debug("我是debug");
logger.trace("我是trace");
}
}
结果:
运行结果只有三种,因为spring默认的级别只到info,需要加配置才能显示,如下图所示。(没用FATAL的原因是,日志有滞后性,而这个级别的错误需要立即修改)