Logback日志使用详解

概述

Logback创建于三个主要类之上:日志记录器(Logger),输出端(Appender)和日志格式化器(Layout)。这三种组件协同工做,使开发者能够按照消息类型和级别来记录消息,还能够在程序运行期内控制消息的输出格式和输出目的地。编程

1.日志记录器(Logger):控制要输出哪些日志记录语句,对日志信息进行级别限制。
2.输出端(Appender):指定了日志将打印到控制台仍是文件中。数组

3.日志格式化器(Layout):控制日志信息的显示格式。spa

日志记录器Logger

在logback中只有一个日志记录器Logger,继承自org.slf4j.Logger且是final的。debug

public final class Logger implements org.slf4j.Logger, LocationAwareLogger,日志

AppenderAttachable<ILoggingEvent>, Serializable {code

}xml

 

输出端Appender

Logback提供了很是丰富的输出端Appender。blog

 

其中,经常使用的Appender有如下几个:继承

ConsoleAppender:打印日志信息到控制台,至关于System.out或者System.err。接口

FileAppender:打印日志信息到文件中。

RollingFileAppender:根据RollingPolicy和TriggeringPolicy将日志打到相应的文件中。

RollingFileAppender有两个与之互动的重要子组件。第一个是RollingPolicy,负责滚动。第二个是TriggeringPolicy,决定是否以及什么时候进行滚动。因此,RollingPolicy负责“什么”, TriggeringPolicy负责“什么时候”。 要想RollingFileAppender起做用,必须同时设置RollingPolicy和TriggeringPolicy。不过,若是RollingPolicy也实现了TriggeringPolicy接口,那么只须要设置RollingPolicy。

让咱们来看看这些策略都有哪些吧?

 

其中,TimeBasedRollingPolicy比较特殊,它同时继承了RollingPolicy和TriggerPolicy。即配置它一个也能够的。

另外在Appender中还使用了一个组件Encoder。

Encoder负责两件事,一是把事件转换为字节数组,二是把字节数组写入输出流。其结构以下:

 

目前,PatternLayoutEncoder是惟一有用的encoder,它基本上是封装了PatternLayout,让PatternLayout负责大多数工做。所以,彷佛encoder并无带来多少好东西,反而只有不须要的复杂性。然而,咱们但愿当新的、强大的encoder到来时,这种印象会改变。

日志格式化器Layout

其结构以下所示:

 

使用方法

logback配置

Logback能够经过编程式配置,或用XML格式的配置文件进行配置。

Logback采起下面的步骤进行自我配置:

1. 尝试在classpath下查找文件logback-test.xml;

2. 若是文件不存在,则查找文件logback.xml;

3. 若是两个文件都不存在,logback用BasicConfigurator自动对本身进行配置,这会致使记录输出到控制台。

 

Logback嵌入代码使用

引入须要的包:

import org.slf4j.Logger;

import org.slf4j.LoggerFactory;

生产logger实例:

要打印的类的开始部分:

private final Logger logger = LoggerFactory.getLogger(getClass());

使用logger实例打印日志

打印形式:

            if (logger.isDebugEnabled()) {

                logger.debug("To modify role(name={}) to role(name={}).",

                        updated.getName(), role.getName());

            }

相关文章
相关标签/搜索