(一)logback模块和主要接口

一、logback模块

logback大致可分为3个模块:logback-core、logback-classic和logback-access。

logback-core:是其他两个模块的基础,包含了核心元件的接口和实现。
logback-classic:实现了slf4j api,所以你可以在logback和slf4j其他的实现之间切换。
logback-access:提供了在web容器中http-access日志功能的实现。

从上述内容我们可以看出,一般应用我们需要添加如下依赖:

<dependency>
      <groupId>org.slf4j</groupId>
      <artifactId>slf4j-api</artifactId>
      <version>1.7.5</version>
</dependency>
<dependency>
      <groupId>ch.qos.logback</groupId>
      <artifactId>logback-core</artifactId>
      <version>1.1.7</version>
</dependency>
<dependency>  
      <groupId>ch.qos.logback</groupId>  
      <artifactId>logback-classic</artifactId>  
      <version>1.1.7</version>  
</dependency>

在logback中,我们需要理解的最重要的4个接口或类型就是Logger,Encoder,Layout和Appender。logback的Logger是一个实现类,放在classic包里,这个Logger类是slf4j的org.slf4j.Logger接口的一个实现,Layout和Appender两个接口在core包里。

二、主要类型和接口

下面主要介绍类型的职责,详细在后续章节说明:

ch.qos.logback.classic.Logger

这个Logger类是slf4j的org.slf4j.Logger接口的一个实现。他提供了我们在记录日志时候的入口。通过调用不同日志级别的同名方法,产生不同级别的日志事件。

下面是使用Logger时日志记录常用方法(每个级别还包含一系列重载方法,这里不做展示):

public void trace(String format);
public void debug(String msg);
public void info(String msg);
public void warn(String msg);
public void error(String msg);
ch.qos.logback.core.encoder.Encoder

Encoder负责将日志event转换为byte array,然后将byte array传输到OutputStream流中。

ch.qos.logback.core.Layout

Layout负责将日志event转换成string。

ch.qos.logback.core.Appender

官方文档的解释是:Logback delegates the task of writing a logging event to components called appenders。说实话我没看懂,XD。

其实理解Appender只需要理解他最重要的一个方法doAppend(E event)。这个方法也是logback框架最重要的一个方法。E具体是什么类型在不同模块里有所不同,classic里他是继承ILoggingEvent接口的一个类型实例,在access模块里,他是AccessEvent类型的实例。doAppend方法干的事儿就是接收一个日志事件,然后让他以正确的格式向外输出给对应的设备。这就是Appender主要干的事儿。
我们在配置Appender的时候,常会看到子节点有filter,encoder,xxpolicy这些东西,appender会协调这些组件一起工作。

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

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值