国产 无码 综合区,色欲AV无码国产永久播放,无码天堂亚洲国产AV,国产日韩欧美女同一区二区

【Java】異常處理 之 使用SLF4J 和 Logback

這篇具有很好參考價值的文章主要介紹了【Java】異常處理 之 使用SLF4J 和 Logback。希望對大家有所幫助。如果存在錯誤或未考慮完全的地方,請大家不吝賜教,您也可以點擊"舉報違法"按鈕提交疑問。

使用SLF4J和Logback

前面介紹了Commons LoggingLog4j 這一對好基友,它們一個負(fù)責(zé)充當(dāng)日志 API,一個負(fù)責(zé)實現(xiàn)日志底層,搭配使用非常便于開發(fā)。

有的童鞋可能還聽說過SLF4JLogback。這兩個東東看上去也像日志,它們又是啥?

其實SLF4J類似于Commons Logging,也是一個日志接口,而Logback類似于Log4j,是一個日志的實現(xiàn)。

為什么有了Commons LoggingLog4j,又會蹦出來SLF4JLogback?這是因為Java有著非常悠久的開源歷史,不但OpenJDK本身是開源的,而且我們用到的第三方庫,幾乎全部都是開源的。開源生態(tài)豐富的一個特定就是,同一個功能,可以找到若干種互相競爭的開源庫。

因為對Commons Logging的接口不滿意,有人就搞了SLF4J。因為對Log4j的性能不滿意,有人就搞了Logback。

我們先來看看SLF4JCommons Logging的接口有何改進(jìn)。在Commons Logging中,我們要打印日志,有時候得這么寫:

int score = 99;
p.setScore(score);
log.info("Set score " + score + " for Person " + p.getName() + " ok.");

拼字符串是一個非常麻煩的事情,所以SLF4J的日志接口改進(jìn)成這樣了:

int score = 99;
p.setScore(score);
logger.info("Set score {} for Person {} ok.", score, p.getName());

我們靠猜也能猜出來,SLF4J的日志接口傳入的是一個帶占位符的字符串,用后面的變量自動替換占位符,所以看起來更加自然。

如何使用SLF4J?它的接口實際上和Commons Logging幾乎一模一樣:

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

class Main {
    final Logger logger = LoggerFactory.getLogger(getClass());
}

對比一下Commons LoggingSLF4J的接口:

Commons Logging	SLF4J
org.apache.commons.logging.Log	org.slf4j.Logger
org.apache.commons.logging.LogFactory	org.slf4j.LoggerFactory

不同之處就是Log變成了Logger,LogFactory變成了LoggerFactory

使用SLF4J和Logback和前面講到的使用Commons LoggingLog4j是類似的,先分別下載SLF4JLogback,然后把以下jar包放到classpath下:

slf4j-api-1.7.x.jar
logback-classic-1.2.x.jar
logback-core-1.2.x.jar

然后使用SLF4J的Logger和LoggerFactory即可。和Log4j類似,我們?nèi)匀恍枰粋€Logback的配置文件,把logback.xml放到classpath下,配置如下:

<?xml version="1.0" encoding="UTF-8"?>
<configuration>

	<appender name="CONSOLE" class="ch.qos.logback.core.ConsoleAppender">
		<encoder>
			<pattern>%d{HH:mm:ss.SSS} [%thread] %-5level %logger{36} - %msg%n</pattern>
		</encoder>
	</appender>

	<appender name="FILE" class="ch.qos.logback.core.rolling.RollingFileAppender">
		<encoder>
			<pattern>%d{HH:mm:ss.SSS} [%thread] %-5level %logger{36} - %msg%n</pattern>
			<charset>utf-8</charset>
		</encoder>
		<file>log/output.log</file>
		<rollingPolicy class="ch.qos.logback.core.rolling.FixedWindowRollingPolicy">
			<fileNamePattern>log/output.log.%i</fileNamePattern>
		</rollingPolicy>
		<triggeringPolicy class="ch.qos.logback.core.rolling.SizeBasedTriggeringPolicy">
			<MaxFileSize>1MB</MaxFileSize>
		</triggeringPolicy>
	</appender>

	<root level="INFO">
		<appender-ref ref="CONSOLE" />
		<appender-ref ref="FILE" />
	</root>
</configuration>

運行即可獲得類似如下的輸出:

13:15:25.328 [main] INFO  com.itranswarp.learnjava.Main - Start process...

從目前的趨勢來看,越來越多的開源項目從Commons Logging加Log4j轉(zhuǎn)向了SLF4J加Logback。

小結(jié)

SLF4J Logback可以取代Commons LoggingLog4j;

始終使用SLF4J的接口寫入日志,使用Logback只需要配置,不需要修改代碼。文章來源地址http://www.zghlxwxcb.cn/news/detail-651306.html

到了這里,關(guān)于【Java】異常處理 之 使用SLF4J 和 Logback的文章就介紹完了。如果您還想了解更多內(nèi)容,請在右上角搜索TOY模板網(wǎng)以前的文章或繼續(xù)瀏覽下面的相關(guān)文章,希望大家以后多多支持TOY模板網(wǎng)!

本文來自互聯(lián)網(wǎng)用戶投稿,該文觀點僅代表作者本人,不代表本站立場。本站僅提供信息存儲空間服務(wù),不擁有所有權(quán),不承擔(dān)相關(guān)法律責(zé)任。如若轉(zhuǎn)載,請注明出處: 如若內(nèi)容造成侵權(quán)/違法違規(guī)/事實不符,請點擊違法舉報進(jìn)行投訴反饋,一經(jīng)查實,立即刪除!

領(lǐng)支付寶紅包贊助服務(wù)器費用

相關(guān)文章

  • SpringBoot集成slf4j日志和logback.xml配置詳解

    SpringBoot集成slf4j日志和logback.xml配置詳解

    slf4j,即(Simple Logging Facade for Java,簡單門面日志)。它是對所有日志框架制定的一種 規(guī)范、標(biāo)準(zhǔn)、接口 ,并不是一個框架的具體的實現(xiàn),它只服務(wù)于各種各樣的日志系統(tǒng)。 slf4j提供了統(tǒng)一的記錄日志的接口,對不同日志系統(tǒng)的具體實現(xiàn)進(jìn)行了抽象化,只要按照其提供的方法記

    2024年02月03日
    瀏覽(42)
  • springboot日志使用 SLF4J+Logback 實現(xiàn)(springboot默認(rèn)的日志實現(xiàn)),日志打印到控制臺及日志輸出到指定文件

    還是直接上代碼 @Slf4j 這玩意 默認(rèn)支持 不用引入 yml 配置文件 下面分享 xml 方式 在 資源目錄下創(chuàng)建 logback-spring.xml 粘貼走 即可 重啟 看控制臺變化 還有磁盤 有沒有寫入 坑 : 我在創(chuàng)建的時候 發(fā)現(xiàn) xml 沒有生效 排查了半天 發(fā)現(xiàn) 在創(chuàng)建 logback-spring.xml 這個文件的時候 我不是手

    2024年04月22日
    瀏覽(99)
  • 23、springboot日志使用入門-- SLF4J+Logback 實現(xiàn)(springboot默認(rèn)的日志實現(xiàn)),日志打印到控制臺及日志輸出到指定文件

    23、springboot日志使用入門-- SLF4J+Logback 實現(xiàn)(springboot默認(rèn)的日志實現(xiàn)),日志打印到控制臺及日志輸出到指定文件

    就是springboot的默認(rèn)的日志依賴實現(xiàn)。創(chuàng)建項目的時候存在這個依賴?yán)锩妗?下面的日志實現(xiàn)就是基于 SLF4J+Logback SLF4J+Logback:SLF4J是門面,Logback是實現(xiàn) 設(shè)置日志的級別,可通過以下方式: ▲ 改變Spring Boot的核心日志級別 ▲ 改變程序組件(包括所有各種框架)的核心日志級別

    2024年02月03日
    瀏覽(98)
  • slf4j java: 程序包org.slf4j不存在問題解決

    Error:(17, 1) java: 程序包org.slf4j不存在 1、本來就集成了日志依賴,后面添加了一個新的maven依賴,導(dǎo)致lombok.extern.slf4j.@Slf4j注解有問題。 解決辦法:手動引入slf4j依賴和log4j依賴 旭東怪的個人空間-旭東怪個人主頁-嗶哩嗶哩視頻 嗶哩嗶哩旭東怪的個人空間,提供旭東怪分享的視

    2024年02月12日
    瀏覽(23)
  • 微服務(wù)學(xué)習(xí)系列15:日志框架slf4j使用和原理

    微服務(wù)學(xué)習(xí)系列15:日志框架slf4j使用和原理

    目錄 ? 前言 一、slf4j 項目Github地址: slfj4j橋接API slf4j 項目模塊描述 二、slf4j-api 簡單使用 代碼分析? 三、基礎(chǔ)知識 外觀模式 適配器模式 什么是橋接模式 什么是SPI 什么是API 四、設(shè)計分析 參考 slf4j主要是為了給Java日志訪問提供一個標(biāo)準(zhǔn)、規(guī)范的API框架,其主要意義在于提

    2024年02月07日
    瀏覽(26)
  • 學(xué)習(xí)SpringBoot使用slf4j日志并輸出到文件中

    學(xué)習(xí)SpringBoot使用slf4j日志并輸出到文件中

    再使用前,先了解一下介紹,否則你也不會用! 1、日志級別 SLF4J將日志分為trace、debug、info、warn、error五個級別,每個級別對應(yīng)記錄不同的日志,對應(yīng)不同的使用場景。 日志級別從低到高分為 TRACE DEBUG INFO WARN ERROR FATAL 如果設(shè)置為 WARN ,則低于 WARN 的信息都不會輸出 一般設(shè)

    2024年02月06日
    瀏覽(28)
  • JAVA基礎(chǔ) - SLF4J: Class path contains multiple SLF4J bindings

    告警描述 告警顯示,在類路徑下包含了多個SLF4J的綁定,然后選擇了一個實現(xiàn)類。 如何解決 方案一 根據(jù)項目的實際情況,刪除多余的JAR包,多個JAR包路徑如下: 方案二 查看項目的POM文件中是否有重復(fù)的SLF4J引入,如何查看?: 找到多余的SLF4J,然后將其排除:

    2024年02月04日
    瀏覽(21)
  • JAVA中使用log4j及slf4j進(jìn)行日志輸出的方法

    JAVA中使用log4j及slf4j進(jìn)行日志輸出的方法

    JAVA中輸出日志比較常用的是log4j,這里講下log4j的配置和使用方法,以及slf4j的使用方法。 一、下載log4j的架包,并導(dǎo)入項目中,如下: 二、創(chuàng)建log4j.properties配置文件 1、log4j配置文件的位置: (1)如果是java project項目,則在項目的根目錄下創(chuàng)建log4j.properties而不是在src目錄下

    2024年02月07日
    瀏覽(26)
  • 日志框架梳理(Log4j,Reload4j,JUL,JCL,SLF4J,Logback,Log4j2)

    文中代碼示例獲?。宏P(guān)注【 Qin的學(xué)習(xí)營地 】,回復(fù)【 日志框架梳理 】 在了解日志框架時總會列出一系列框架:Log4j,Reload4j,JUL,JCL,SLF4J,Logback,Log4j2,這么多框架讓人感到混亂,該怎么選取、該怎么用。接下來,讓我們逐步理清這些框架及之間的關(guān)系。 首先來了解日志

    2024年02月05日
    瀏覽(61)
  • 解決SLF4J: Actual binding is of type [ch.qos.logback.classic.util.ContextSelectorStaticBinder]的方案?。。。。? decoding=

    解決SLF4J: Actual binding is of type [ch.qos.logback.classic.util.ContextSelectorStaticBinder]的方案?。。。?!

    目錄 前提 一、 安裝maven helper插件 1、 安裝 2、 安裝成功 3、 使用 二、 去掉沖突的依賴包 1、 前面已找到目標(biāo)依賴,去pom文件內(nèi)操作 2、 去除 3、 最后就可以了! 今天單元測試遇到了jar包沖突 具體是StaticLoggerBinder這個類加載沖突了,在兩個jar包中都找到了,直接去掉一個。

    2024年02月11日
    瀏覽(17)

覺得文章有用就打賞一下文章作者

支付寶掃一掃打賞

博客贊助

微信掃一掃打賞

請作者喝杯咖啡吧~博客贊助

支付寶掃一掃領(lǐng)取紅包,優(yōu)惠每天領(lǐng)

二維碼1

領(lǐng)取紅包

二維碼2

領(lǐng)紅包