Springboot日志相关

市场上的日志框架

日志门面(日志抽象层)日志实现
JCL(Jakarta Commons Logging)、SLF4j(Simple Logging Facade for Java)、jboss-loggingLog4j、JUL(Java.util.logging)、Log4j2、Logback
  • Log4j、Logback 、SLF4j都是出自同一个人的手,Logback时Log4j的升级版
  • 建议使用SLF4j+Logback的组合作为日志框架
  • Springboot底层使用的是SLF4j+Logback的组合

SLF4j

  • 开发的时候应该调用日志的抽象层(SLF4j),不应该使用日志的实现层(Logback),当然也可以使用其他实现层,SLF4j与其他的实现层的关系在slf4j的官网(http://slf4j.org/manual.html)上有一张图
    在这里插入图片描述
  • 使用
public class SLF4jTest {
    public static void main(String[] args){
        Logger logger = LoggerFactory.getLogger(SLF4jTest.class);
        logger.info("测试------");
    }
}

同一个系统统一日志框架

在一个系统中,可以能引入很多的jar包,如:mybatis、Spring等等,但是他们底层使用的日志框架不一样,这个要怎么解决呢?
在sfl4j的官网(http://slf4j.org/legacy.html)上也能找到解决方案:在这里插入图片描述
我们只要使用对应的日志jar包替换掉其他框架的日志jar包,就可以达到这个效果,打个比方:
如果mybatis中使用的是Commons logging API,我们要替换掉这个jar包,首先就得排除掉这个jar包,然后引入jcl-over-slf4j.jar的包,其实jcl-over-slf4j中会包含Commons logging API中的所有类以及方法,只是实现不一样

sfl4j Springboot配置

  • logging.level.com.example=info
    com.example包下的,只要是info级别以上的日志都输出
  • logging.path=/var/log
    指定日志输出在/var/log的目录下
  • logging.file=D:\my.log
    指定日志输出到my.log的日志文件下
  • logging.pattern.console=%d{yyyy-MM-dd HH:mm:ss.SSS} [%thread] %-5level %logger{50} - %msg%n
    控制台输出的日志的格式
  • logging.pattern.file=%d{yyyy-MM-dd HH:mm:ss.SSS} [%thread] %-5level %logger{50} - %msg%n
    指定文件中输出的日志的格式

替换日志框架

先看一张图(通过pom文件右键 —> Diagrams —> Show Dependencies查看)
在这里插入图片描述
这张图是我现在的Springboot的依赖图,然后我要怎么做呢?
分析:

  • 这里是用slf4j作为抽象层,logback作为实现层 (可以看前面的图片确定)
  • 这里将log4j的api通过log4j-to-slf4j封装成了slf4j
    如果要将logback替换掉,那就需要先将logback的依赖移除,然后依然使用slf4j作为抽象层的话,就不要移除slf4j,然后引入对应的中间包
    ,这样即可完成替换
  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值