日韩性视频-久久久蜜桃-www中文字幕-在线中文字幕av-亚洲欧美一区二区三区四区-撸久久-香蕉视频一区-久久无码精品丰满人妻-国产高潮av-激情福利社-日韩av网址大全-国产精品久久999-日本五十路在线-性欧美在线-久久99精品波多结衣一区-男女午夜免费视频-黑人极品ⅴideos精品欧美棵-人人妻人人澡人人爽精品欧美一区-日韩一区在线看-欧美a级在线免费观看

歡迎訪問 生活随笔!

生活随笔

當(dāng)前位置: 首頁 >

Logback日志使用详解

發(fā)布時間:2025/4/5 18 豆豆
生活随笔 收集整理的這篇文章主要介紹了 Logback日志使用详解 小編覺得挺不錯的,現(xiàn)在分享給大家,幫大家做個參考.

概述

Logback建立于三個主要類之上:日志記錄器(Logger),輸出端(Appender)和日志格式化器(Layout)。這三種組件協(xié)同工作,使開發(fā)者可以按照消息類型和級別來記錄消息,還可以在程序運行期內(nèi)控制消息的輸出格式和輸出目的地。

1.日志記錄器(Logger):控制要輸出哪些日志記錄語句,對日志信息進行級別限制。
2.輸出端(Appender):指定了日志將打印到控制臺還是文件中。

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

日志記錄器Logger

在logback中只有一個日志記錄器Logger,繼承自org.slf4j.Logger且是final的。

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

AppenderAttachable<ILoggingEvent>, Serializable {

}

?

輸出端Appender

Logback提供了非常豐富的輸出端Appender。

?

其中,常用的Appender有以下幾個:

ConsoleAppender:打印日志信息到控制臺,相當(dāng)于System.out或者System.err。

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

RollingFileAppender:根據(jù)RollingPolicy和TriggeringPolicy將日志打到相應(yīng)的文件中。

RollingFileAppender有兩個與之互動的重要子組件。第一個是RollingPolicy,負責(zé)滾動。第二個是TriggeringPolicy,決定是否以及何時進行滾動。所以,RollingPolicy負責(zé)“什么”, TriggeringPolicy負責(zé)“何時”。 要想RollingFileAppender起作用,必須同時設(shè)置RollingPolicy和TriggeringPolicy。不過,如果RollingPolicy也實現(xiàn)了TriggeringPolicy接口,那么只需要設(shè)置RollingPolicy。

讓我們來看看這些策略都有哪些吧?

?

其中,TimeBasedRollingPolicy比較特殊,它同時繼承了RollingPolicy和TriggerPolicy。即配置它一個也可以的。

另外在Appender中還使用了一個組件Encoder。

Encoder負責(zé)兩件事,一是把事件轉(zhuǎn)換為字節(jié)數(shù)組,二是把字節(jié)數(shù)組寫入輸出流。其結(jié)構(gòu)如下:

?

目前,PatternLayoutEncoder是唯一有用的encoder,它基本上是封裝了PatternLayout,讓PatternLayout負責(zé)大多數(shù)工作。因此,似乎encoder并沒有帶來多少好東西,反而只有不需要的復(fù)雜性。然而,我們希望當(dāng)新的、強大的encoder到來時,這種印象會改變。

日志格式化器Layout

其結(jié)構(gòu)如下所示:

?

使用方法

logback配置

Logback可以通過編程式配置,或用XML格式的配置文件進行配置。

Logback采取下面的步驟進行自我配置:

1. 嘗試在classpath下查找文件logback-test.xml;

2. 如果文件不存在,則查找文件logback.xml;

3. 如果兩個文件都不存在,logback用BasicConfigurator自動對自己進行配置,這會導(dǎo)致記錄輸出到控制臺。

?

Logback嵌入代碼使用

引入需要的包:

import org.slf4j.Logger;

import org.slf4j.LoggerFactory;

生產(chǎn)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());

??????????? }

?

轉(zhuǎn)載于:https://www.cnblogs.com/davidwang456/p/4448011.html

總結(jié)

以上是生活随笔為你收集整理的Logback日志使用详解的全部內(nèi)容,希望文章能夠幫你解決所遇到的問題。

如果覺得生活随笔網(wǎng)站內(nèi)容還不錯,歡迎將生活随笔推薦給好友。