java日志体系

java日志体系,第1张

 

如果是新代码建议是slf4j 因为可以通过适配器灵活适配各种日志实现 

 

如果同时项目中老代码使用了log4j, 可以通过桥接器,适配到slf4j,然后就跟新代码使用得日志框架一致了,但是注意log4j和slf4j不要互相适配和桥接,可能出现死循环导致栈溢出

1.log4j ,  2.jcl,  3jul

spring默认使用jcl 然后jcl使用jul, spring默认不适用jul, 是因为jul classloader原因无法适配log4j2,所以使用得jcl,tomcat使用得jul

如果sping想用log4j,因为无法修改spring底层实现 则需要通过 spring --> jcl-->  jcl-over-slf4j --> slf4j--> log4j适配器(slf4j-log4j12)->log4j



      log4j
      log4j
      1.2.17




      org.slf4j
      slf4j-log4j12
      1.7.32



 

      org.apache.logging.log4j
      log4j-api
      2.14.1
 
 
       org.apache.logging.log4j
       log4j-core
       2.14.1
 

 
 
       org.apache.logging.log4j
       log4j-slf4j-impl
       2.14.1
 

springboot默认使用logback实现, 有个spring-boot-starter-logging专门打印日志,

默认通过slf4j -->logback-classic适配器 -->logback-core打印日志

tomcat -->jul -->jul-to-slf4j桥接器 -->slf4j重复第一步

log4j -->log4j-to-slf4j桥接器 --》slf4j重复第一步(可能老代码直接使用得log4j)

 

 

也可以排除spring-boot-starter-loggin(log4j1)导入 spring-boot-starter-log4j2 直接使用log4j2

 

使用jcl按优先级jcl实现

欢迎分享,转载请注明来源:内存溢出

原文地址:https://54852.com/langs/795074.html

(0)
打赏 微信扫一扫微信扫一扫 支付宝扫一扫支付宝扫一扫
上一篇 2022-05-06
下一篇2022-05-06

发表评论

登录后才能评论

评论列表(0条)

    保存