一、日志使用;
1、默认配置
SpringBoot默认帮我们配置好了日志
//记录器
Logger logger = LoggerFactory.getLogger(getClass());
@Test
void contextLoads() {
//日志的级别:
//由低到高 trace<debug<info<warn<error
//我们可以调整输出的日志级别:去获取我们所需要的级别的日志
logger.trace("这是trace日志...");
logger.debug("这是debug日志...");
//SpringBoot 默认给我们的是info级别
//调整在application.properties中添加logging.level.com.example=trace
logger.info("这是info日志...");
logger.warn("这是warn日志...");
logger.error("这是error日志...");
}
我们可以在application.propertis中去设置日志的输出方式:
-
Spring Boot默认日志root等级是info等级;
-
logging.level.packagename=trace[debug、info、warn、error]设置日志输出的等级;
-
logging.file.path=绝对路径、相对路径:日志文件指定输出到文件中;
-
我们也可以规定日志的格式
%c 输出日志信息所属的类的全名 %d 输出日志时间点的日期或时间,默认格式为ISO8601,也可以在其后指定格式,比如:%d{yyy-MM-dd HH:mm:ss },输出类似:2002-10-18- 22:10:28 %f 输出日志信息所属的类的类名 %l 输出日志事件的发生位置,即输出日志信息的语句处于它所在的类的第几行 %m 输出代码中指定的信息,如log(message)中的message %n 输出一个回车换行符,Windows平台为“rn”,Unix平台为“n” %p 输出优先级,即DEBUG,INFO,WARN,ERROR,FATAL。如果是调用debug()输出的,则为DEBUG,依此类推 %r 输出自应用启动到输出该日志信息所耗费的毫秒数 %t 输出产生该日志事件的线程名 所以: %5p [%t] (%F:%L) - %m%n 就表示 宽度是5的优先等级 线程名称 (文件名:行号) - 信息 回车换行
-
application.properties
logging.level.com.example=trace logging.file.path=D:/springboot.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
2、指定配置
给类路径上放上xx.xml自己的日志配置,并且设定自己的日志输出设置,那么就不会使用默认的输出日志设置了。
logback.xml:直接就被日志框架识别了;
**logback-spring.xml:**日志框架不会直接加载日志的配置项,由Spring boot 进行加载识别,这样我们可以使用sping boot 的高级配置。对于springboot的识别,我们可以添加springProfile进行配置:
<springProfile name="staging">
可以指定某段配置只在某个环境下生效
</springProfile>
否则会出现框架加载错误。
建议:最好是使用logback-spring.xml进行自定义配置,这样我们可以使用springboot的高级配置。
3、切换日志框架
-
可以按照slf4j的日志适配图,进行相关的切换;去掉某一些的依赖,然后添加上需要的log4j等配置
-
springboot官方支持以下切换框架:
我们可以直接删除之前的spring-boot-starter-xxx,然后再添加所需要的日志框架即可。