SpringBoot----日志框架和配置
Posted 大忽悠爱忽悠
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了SpringBoot----日志框架和配置相关的知识,希望对你有一定的参考价值。
日志框架和配置
日志框架分类和选择
SLF4j使用
SLF4j用户手册
使用图示—需要导入的jar包
统一日志记录,即使是别的框架,也和我一起使用slf4j进行输出
如何让系统中所有日志统一使用slf4j
- 将系统中其他的日志框架先排除出去
- 用中间包替换原有的日志框架
- 我们导入slf4j其他的实现
SpringBoot日志关系
日志使用
1.springBoot默认已经帮我们配置了日志配置
关于使用logger.trace()里面传入字符串爆红问题===》自动导包导入导入的包不匹配
spring boot日志使用trace()方法时‘trace(java.util.function.Supplier<java.lang.String>)‘…报错的解决
SpringBoot默认日志级别是info级别的,没有指定级别的就使用springboot默认规定的级别===》root级别===》info级别
日志级别
由低到高:trace<debug<info<warn<error
可以调整输出的日志级别,日志就只会在这个级别以后的高级别生效
@RunWith(SpringRunner.class)
@SpringBootTest
class SpringBootQuickStartOneApplicationTests {
//记录器
Logger logger= LoggerFactory.getLogger(getClass());
@Test
public void contextLoads()
{
//日志级别
//由低到高:trace<debug<info<warn<error
//可以调整输出的日志级别,日志就只会在这个级别以后的高级别生效
logger.trace("这是trace日志...");
logger.debug("这是debug日志");
//springBoot默认给我们使用的是info级别的
logger.info("这是info级别");
logger.warn("这是warn级别");
logger.error("这是error级别");
}
}
SpringBoot日志设置
- 日志级别由低到高:trace、debug、info、warning、error。
- SpringBoot的默认日志级别为info,调整日志级别的方法为:在application.properties文件中进行调整:
- logging.level.包名(.类名)=级别A—>调整某个包(类)的最低日志级别为A。
修改默认日志配置:
logging.file=springboot.log 不指定路径,在当前项目下生成名为springboot.log的日志
logging.file=E:/springboot.log 指定完整的路径,在E盘下生成名为springboot.log的日志
logging.path=/spring/log 在当前项目磁盘的根路径(如果不改为c盘)下创建spring文件夹和里面的log文件夹;使用
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是换行符
%d{yyyy‐MM‐dd HH:mm:ss.SSS} [%thread] %‐5level %logger{50} ‐ %msg%n
自定义日志配置
给类路径下放上每个日志框架自己的配置文件,SpringBoot将不使用默认配置
如果直接使用logback-spring.xml为文件名,日志框架就不会直接加载日志的配置项,而是由SpringBoot解析日志配置,可以使用SpringBoot的高级Profile功能===》指定某段配置只在某段环境下生效
<appender name="stdout" class="ch.qos.logback.core.ConsoleAppender">
<layout class="ch.qos.logback.classic.PatternLayout">
<!--可以指定某段配置只在某个环境下生效-->
<!--生产环境生效-->
<springProfile name="dev">
<pattern>%d{yyyy‐MM‐dd HH:mm:ss.SSS} ‐‐‐‐> [%thread] ‐‐‐> %‐5level%logger{50} ‐ %msg%n</pattern>
</springProfile>
<!--非生产环境生效-->
<springProfile name="!dev">
<pattern>%d{yyyy‐MM‐dd HH:mm:ss.SSS} ==== [%thread] ==== %‐5level%logger{50} ‐ %msg%n
</pattern>
</springProfile>
</layout>
</appender>
如果直接使用logback.xml为文件名,它将直接被日志框架识别,如果继续使用profile功能,会有以下错误:
no applicable action for [springProfile]
SpringBoot对日志框架的统一处理以及日志设置可以参考下面这篇文章
切换日志框架参考下面这篇文章
以上是关于SpringBoot----日志框架和配置的主要内容,如果未能解决你的问题,请参考以下文章