网站建设和风险评估,渐变配色网站,个体工商营业执照注册查询,微信营销神器在调用log变量的方法来输出日志时#xff0c;有以上5个级别对应的方法#xff0c;从不太重要#xff0c;到非常重要 调用不同的方法#xff0c;就会输出不同级别的日志。
trace#xff1a;跟踪信息debug#xff1a;调试信息info#xff1a;一般信息warn#xff1a;警告…在调用log变量的方法来输出日志时有以上5个级别对应的方法从不太重要到非常重要 调用不同的方法就会输出不同级别的日志。
trace跟踪信息debug调试信息info一般信息warn警告信息error错误信息
问题SpringBoot只打印了info等级的日志? 原因使用了Spring Boot例如在测试类上添加了SpringBootTest注解日志的默认显示级别是info则只会显示info、warn、error级别的日志不会显示trace、debug级别的日志。
解决方法
1.首先我们确认使用了工具打印日志 在pom.xml中添加依赖 !-- Lombok的依赖项主要用于简化POJO类的编写 --!-- 添加了Lombok后在任何类的声明之前添加Slf4j注解则编译期会自动声明一个名为log的变量所以可以在类中通过此变量来输出日志。 --dependencygroupIdorg.projectlombok/groupIdartifactIdlombok/artifactIdversion1.18.20/versionscopeprovided/scope/dependency使用前在任何类的声明之前添加Slf4j注解如下则编译期会自动声明一个名为log的变量
Slf4j
SpringBootTest
class SmallApplicationTests {Testvoid logTest(){int x 1;int y 2;System.out.println(x x , y y , x y (x y)); // 传统做法log.trace(111x {}, y {}, x y {}, x , y , x y); // 使用日志输出变量的做法log.debug(222x {}, y {}, x y {}, x , y , x y); // 使用日志输出变量的做法log.info(333x {}, y {}, x y {}, x , y , x y); // 使用日志输出变量的做法log.warn(444x {}, y {}, x y {}, x , y , x y); // 使用日志输出变量的做法log.error(555x {}, y {}, x y {}, x , y , x y); // 使用日志输出变量的做法}
}2.配置展示日志等级 在Spring Boot项目中可以在配置文件application.properties / application.yml / 相关Profile配置中配置logging.level.包名属性以指定某个包下的所有类的默认日志显示级别此属性的值为5个级别中的某1个。
例如在application.yml添加配置
#加载Spring Boot的情况下日志的默认显示级别是info只会显示此级别及更加重要的级别的日志info.warn,error
#为了所有日志都现在包括trace(跟踪日志)debug (调试日志)
#实际尝试有效
logging:level:com.luoyang.small: trace或者在application.properties中添加配置
#实际尝试有效
logging.level.com.luoyang.smallTRACE结果
附加信息
提示 Mybatis框架会生成各Mapper接口的对象这些对象在执行SQL语句时也会输出日志。如果想看的trace和info级别的日志也需要把日志的显示级别设置为较低的trace级别
日志占位符 在调用日志的方法时如果输出的信息中包含变量值可以使用{}作为占位符表示此处是一个变量值然后通过Object... args依次传入各占位符对应的值如下 Testvoid logTest(){int x 1;int y 2;System.out.println(x x , y y , x y (x y)); // 传统做法log.trace(111x {}, y {}, x y {}, x , y , x y); // 使用日志输出变量的做法}以上使用日志输出时不会涉及到字符串的拼接所以执行效率会更高。并且以上方法的第1个参数是字符串常量是在内存中的字符串常量池中的也可以一定程度上提高执行效率。
创造价值乐哉分享