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());

            }

相關文章
相關標籤/搜索