SpringBoot_03_日志
SpringBoot_03_日志
1.日志框架
Spring默认的是JCL,而SpringBoot选用的是slf4j和Logback。
日志门面 | 日志实现 |
---|---|
|
|
slf4j | |
Logback |
2.使用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以后,配置文件还是做成日志实现框架自己本身的配置文件。
3.统一日志记录
- 将系统中其他日志框架先排除;
- 用中间包来替换原有的日志框架;
- 导入slf4j其他的实现;
import org.junit.Test;
import org.junit.runner.RunWith;
import org.slf4j.Logger;
import org.slf4j.LoggerFactory;
import org.springframework.boot.test.context.SpringBootTest;
import org.springframework.test.context.junit4.SpringRunner;
@RunWith(SpringRunner.class)
@SpringBootTest
public class SpringbootLoggingApplicationTests {
private Logger logger = LoggerFactory.getLogger(getClass());
@Test
public void contextLoads() {
//日志的级别(由低到高):trace<debug<info<warn<error
//可以在application.properties里配置日志输出级别:logging.level.com.hoki=trace
logger.trace("trace");
logger.debug("debug");
//没有指定级别的,SpringBoot默认使用的是info级别的
logger.info("info");
logger.warn("warn");
logger.error("error");
}
}
logging.level.com.hoki=trace
# 当前项目下生成log日志
#logging.file=springboot.log
# 也可以指定完整路径
#logging.file=G:/springboot.log
# 默认使用的是spring.log,位置: 如E:\spring\log,项目的磁盘根路径下
logging.path=/spring/log
# 在控制台输出的日志格式
logging.pattern.console=%d{yyyy-mm-dd} [%thread] %-5level %logger{50} - %msg%n
# 指定文件中日志输出的格式
logging.pattern.file=%d{yyyy-mm-dd} === [%thread] === %-5level === %logger{50} === %msg%n
日志输出格式
- %d : 日期时间
- %thread : 线程名
- %-5level : 级别从左显示5个字符宽度
- %logger{50} : logger名字最长50个字符,否则按照句点分割
- %msg : 日志消息
- %n : 换行符