SpringBoot使用的是
日志门面: SLF4J;
日志实现:Logback;
SpringBoot:底层是Spring框架,Spring框架默认是用JCL;
SpringBoot其实已经默认的帮我们配置好了日志
我们可以在测试类获取一个日志记录器,添加一些数据
package cn.kitey.spring_logging;
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 Demo03SpringLoggingApplicationTests {
//获取日志记录器
Logger logger = LoggerFactory.getLogger(getClass());
@Test
public void contextLoads() {
//日志级别:由低到高:trace < debug < info < warn > error
//优点:可以调整输出的日志级别;日志只有在这个级别之上的才可以生效
logger.trace("这时trace日志。。。");
logger.debug("这时debug日志。。。");
//springBoot默认输出的时info之后(包括info)
logger.info("这时info日志。。。"); //自己定义的信息
logger.warn("这时warn日志。。。");
logger.error("这时error日志。。。");
}
}
日志的输出格式为
%d:表示日期时间,
%thread:表示线程名,
%-5level:级别从左显示5个字符宽度
%logger{50} 表示logger名字最长50个字符,否则按照句点分割。
%msg:日志消息,
%n:是换行符
%d{yyyy-MM-dd HH:mm:ss.SSS} [%thread] %-5level %logger{50} - %msg%n
SpringBoot修改日志的默认设置
# 设日志的级别
logging.level.cn.kitey=trace
# 指定日志文件的生成路径
#logging.file=D:/java/SpringBoot/logging/springboot.log
#在当的文件下使用默认的文件名
#logging.path=D:/java/SpringBoot/logging
## 在控制台指定日志的输出格式
#logging.pattern.console=%logger{50} - %msg%n
#
## 指定文件中日志输出的格式
#logging.pattern.file=%d{yyyy-MM-dd} %n
# 指定开发环境
spring.profiles.active=dev
给类路径下放上每个日志框架自己的配置文件即可;SpringBoot就不使用他默认配置的了
配置的指定命名方式
Logback:logback-spring.xml, logback-spring.groovy, logback.xml or logback.groovy
Log4j2:log4j2-spring.xml or log4j2.xml
对于SpringBoot的默认框架修改配置文件:
logback.xml:直接就被日志框架识别了;
logback-spring.xml:日志框架就不直接加载日志的配置项,由SpringBoot解析日志配置,可以使用SpringBoot的高级Profile功能
<springProfile name="staging">
<!-- configuration to be enabled when the "staging" profile is active -->
可以指定某段配置只在某个环境下生效
</springProfile>
这时我们应该指定开发的环境:
指定开发环境
spring.profiles.active=dev