Spring Boot选用的是slf4j(日志的抽象层)和logback(日志的实现)。
- 如何在系统中使用slf4j?
import org.slf4j.Logger;
import org.slf4j.LoggerFactory;
public class HelloWorld {
public static void main(String[] args) {
Logger logger = LoggerFactory.getLogger(HelloWorld.class);
logger.info("Hello World");
}
}
如图示:
每一个日志的实现框架都有自己的配置文件,使用slf4j以后,配置文件仍是做成日志实现框架自己本身的配置文件。
2. 将系统中的所有日志统一到slf4j:
(1)排除系统中会其他的日志框架;
(2)用中间包替换原有的日志框架;
(3)导入slf4j的其他实现。
如图:
3. 日志级别:
//日志记录器
Logger logger = LoggerFactory.getLogger(getClass());
@Test
public void contextLoads() {
//日志级别由低到高:trace<debug<info<warn<error
logger.trace("---------------trace:"); //跟踪轨迹
logger.debug("---------------debug:");
logger.info("---------------info:");
logger.warn("---------------warn:");
logger.error("---------------error:");
}
Spring Boot默认是info级别的。
日志配置示例:
application.properties:
#调整包com.sdn的日志级别为trace
logging.level.com.sdn = trace
#不指定路径默认在当前项目下生成springboot.log日志文件
#logging.file=springboot.log
#在当前磁盘的根路径下创建spring文件夹和里面的log文件夹,使用spring.log作为默认文件
logging.path=/spring/log
#控制台输出日志的格式
logging.pattern.console=%d{yyyy-MM-dd HH:mm:ss.SSS} {%thread} %-5level %logger{50} - %msg%n
#指定文件中日志的输出格式
logging.pattern.file=%d{yyyy-MM-dd HH:mm:ss.SSS} == {%thread} == %-5level == %logger{50} - %msg%n
日志输出格式参数说明:
%d:日期时间,
%thread:线程名,
%-5level:级别从左显示5个字符宽度
%logger{50}:logger名字最长50个字符,否则按照句点分割。
%msg:日志消息,
%n:换行符