本文來說下logback日志框架基本知識
概述
Spring Boot已經(jīng)將logback做為默認集成的日志框架,全面了解學習是必然了。曾經(jīng)log4j是流行的日志框架,現(xiàn)在已被它的繼任者logback替代,logback更快,更小,更靈活。當然,如果你的項目中還在用System.out.println()來輸出內(nèi)容,那更是得行動起來,要么“逃”吧,要么改造吧。
logback簡介
先來看看logback何許人也,最直接的就是看看它的官網(wǎng):https://logback.qos.ch/
官網(wǎng)首頁直言不諱的說它將是log4j的繼承者,所以,如果還沒用到或如果還不會使用,趕緊行動起來吧。
logback主要由三個模塊構成:logback-core,logback-classic及l(fā)ogback-access。
logback-core為基礎核心,另外兩個均依賴它。其中l(wèi)ogback-classic實現(xiàn)了簡單日志門面SLF4J;logback-access主要作為一個與Servlet容器交互的模塊,提供與HTTP訪問相關的一些功能。
通常使用時直接引入logback-classic的依賴,便可自動引入logback-core,當然為保險起見也可以顯式的引入兩者。
SpringBoot對logback的支持
上面已經(jīng)提到SpringBoot默認集成了logback,因此無需專門引入便可進行直接使用。后面的示例我們也基于SpringBoot來進行演示和講解,畢竟方便嘛。
在SpringBoot的web項目中l(wèi)ogback的依賴關系如下:
我們可以看到一旦引入spring-boot-starter-web依賴,對應的不僅引入了logback框架,還同時引入了slf4j相關框架。所以,項目中直接使用即可。
SpringBoot的集成
首先創(chuàng)建一個SpringBoot項目,核心依賴文件便是spring-boot-starter-web。
<dependency>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-starter-web</artifactId>
</dependency>
如此便集成完成,其實嘛,等于根本不用集成。我們在項目中創(chuàng)建一個Controller類,其中打印不同級別的日志信息。
package com.wideth.controller;
import io.swagger.annotations.Api;
import io.swagger.annotations.ApiOperation;
import org.slf4j.Logger;
import org.slf4j.LoggerFactory;
import org.springframework.web.bind.annotation.GetMapping;
import org.springframework.web.bind.annotation.RequestMapping;
import org.springframework.web.bind.annotation.RestController;
@RestController
@Api(tags = "logback")
@RequestMapping("/api")
public class LogbackController {
private static final Logger log =
LoggerFactory.getLogger(LogbackController.class);
@ApiOperation(value = "logback")
@GetMapping("/hello")
public void hello() {
log.debug("Hello world 測試debug日志");
log.info("Hello world 測試info日志");
log.warn("Hello world 測試warn日志");
log.error("Hello world 測試error日志");
}
}
上面代碼中分別使用debug,info,warn,error方法輸出日志。日志的所有配置,都是基于SpringBoot集成logback時的默認配置來的。
此時如果訪問對應的url,便可打印出對應日志。
為什么只打印了三行?因為SpringBoot默認日志輸出級別為info級別。在application.properties文件中添加如下配置便可打印出debug級別的日志。
logging:
level:
com.wideth: debug
其中com.wideth為項目的基礎package路徑。更多配置使用下節(jié)專門進行講解。
SpringBoot對logback的基礎配置
SpringBoot對logback內(nèi)置了一些默認配置,這與SpringBoot集成其他框架異曲同工。默認情況下SpringBoot將日志輸出到控制臺,不會寫到日志文件。如果輸出到日志文件,則需在application.properties中設置logging.file或logging.path屬性。
logging:
level:
com.wideth: debug
file:
# 注:二者不能同時使用。否則只有l(wèi)ogging.file生效
name: my.log
path: my.logs
關于日志級別的配置,在上面已經(jīng)有具體的示例了。設置格式為logging.leve.* =LEVEL,其中*為包名或logger名,LEVEL有:TRACE,DEBUG,INFO,WARN,ERROR,F(xiàn)ATAL,OFF。
其他的就是日志文件的大?。J10MB)、格式,以及控制臺和日志文件內(nèi)日志的格式配置了。根據(jù)提示我們可以很輕易搞定。
但是,你可能也發(fā)現(xiàn)了在application.properties中支持的配置有些簡單。對的,如果需要配置復雜的日志內(nèi)容,則需要基于xml配置文件來進行操作。
自定義logback配置
在application.properties中配置日志,通常在小型系統(tǒng)或?qū)θ罩緵]有嚴格要求的系統(tǒng)中使用。如果運用在生產(chǎn)環(huán)境,通常建議通過基于xml文件來對logback進行自定義配置。在SpringBoot中,默認支持四種命名的日志文件。
也就是說如果在src/main/resources目錄下放置其中任一類型的配置文件,SpringBoot便會自動進行使用。
而Spring Boot官方推薦優(yōu)先使用帶有-spring的文件名配置(如有l(wèi)ogback-spring.xml,則不會使用logback.xml)。
若需要對配置文件名進行修改,或者希望把放到其它目錄下,可以在application中通過logging.config屬性來指定,如logging.config=classpath:config/my-log-config.xml。文章來源:http://www.zghlxwxcb.cn/news/detail-515231.html
本文小結(jié)
本文介紹了logback日志框架基本知識和常見的一些概念文章來源地址http://www.zghlxwxcb.cn/news/detail-515231.html
到了這里,關于logback日志框架基本知識的文章就介紹完了。如果您還想了解更多內(nèi)容,請在右上角搜索TOY模板網(wǎng)以前的文章或繼續(xù)瀏覽下面的相關文章,希望大家以后多多支持TOY模板網(wǎng)!