springboot 默认集成了 slf4j为日志门面 以logback为日志实现
slf4j 和logback1.使用logback时无需导入maven坐标
2.可在application.properties中配置日志信息
#导入了别的实现后就不用配置了,配了也会失效
#指定自定义logger对象的日志级别
logging.level.cn.sp=trace
#指定控制台输出日志的格式
logging.pattern.console=[%-5level] %d{yyyy-MM-dd HH:mm:ss} %c [%thread]==== %msg %n
#指定目录
logging.file.path=D:/logs
#指定文件路径
logging.file.name=springbootlog.log
#指定文件日志格式
logging.pattern.file=[%-5level] %d{yyyy-MM-dd HH:mm:ss} %c [%thread]==== %msg %n
4.配置logback.xml,也可配置为logback-spring.xml,也能被springboot解析,后面的可配置dev的pro等参数在application.properties中
设置spring.profiles.active=pro
当加入配置文件后,application.properties中配置的日志信息就会失效
System.err ${patternDev} ${patternPro} UTF-8
5.测试
使用slf4j或者log4j2作为日志门面,logback作为日志实现
import org.apache.logging.log4j.LogManager;
import org.junit.jupiter.api.Test;
import org.slf4j.Logger;
import org.slf4j.LoggerFactory;
import org.springframework.boot.test.context.SpringBootTest;
@SpringBootTest
class SpringbootLogApplicationTests {
public static final Logger log = LoggerFactory.getLogger(SpringbootLogApplicationTests.class);
@Test
void contextLoads() {
log.error("error");
log.warn("warn");
log.info("info");
log.debug("debug");
log.trace("trace");
//使用log4j2 使用slf4j门面和logback日志实现
org.apache.logging.log4j.Logger logger = LogManager.getLogger(SpringbootLogApplicationTests.class);
logger.info("log4j2 info");
}
}
使用log4j2作为日志实现
1.导入maven坐标
此时需要排除logback的日志实现
org.springframework.boot spring-boot-starter org.springframework.boot spring-boot-starter-logging org.springframework.boot spring-boot-starter-log4j2
2.配置log4j2.xml,详细参考log4j2模块
D:/logs
3.测试



