日志框架

  • 背景: 

刚学Java的时候、对于程序的所有调试信息。我们都是通过Sysout直接输出到控制台的。针对此问题可能存在以下问题

1、需要删除调试信息的时候 需要修改源码代码。去掉Sysout相关代码。如果哪天需要查看调试信息的时候,又需要加入此代码。

2、针对部署在Tomcat的JAVA应用,也最好不要讲日志直接打印到服务器的控制台。这样会导致catalina.out文件特别大。

  • 解决方案

所以我们需要引入日志框架来实现日志打印。日志框架一般具备以下特点:

1、可以方便的打开、或者关闭日志。并且日志按照等级控制。

2、日志可以输出到指定的目录文件,并且可以进行归档。压缩打包。

市面上现在有很多日志框架:如log4j、logback、jul、log4j2等。并且还有一些抽象日志API,它统一定义了日志打印的接口。我们实际编码的过程中都是针对抽象日志API进行编程的。

import org.slf4j.Logger;
import org.slf4j.LoggerFactory;

public class HelloWorld {
  public static void main(String[] args) {
    Logger logger = LoggerFactory.getLogger(HelloWorld.class);
    logger.info("Hello World");
  }
}

这样的我们可以很方便的切换日志实现框架。比如我最开始日志是使用的log4j实现的,后来我要换成logback的话。我只需要导入logback的包以及增加相关配置文件就行了。而不需要再修改代码。

抽象日志API有:JCL(Apache 实现的 common-logging)、SLF4J

实现框架有:log4j、logback、log4j2等

 

JCL 最后更新在2014年,之后就没有更新了。所以现在主要使用SLF4J来打印日志。

log4j 存在性能问题。并且也很久没有更新了。所以现在主要使用logback、log4j2。这三个日志实现框架,都是同一个作者开发的。

SLF4J的使用:

一个项目中我们会导入其他第三方框架,比如Spring、Mybatis 等。他们使用的抽象日志API可能不一样。我们可以通过以下方式进行整合,通过转换包将其他的日志转为SLF4J。如下图所示

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值