SpringBoot整合logback的示例代碼
Logback簡介
1、logback和log4j是同一個(gè)作者,logback可以看作是log4j的升級版
2、logback分為三個(gè)模塊, logback-core, logback-classic 和logback-access,其中 logback-core是核心,其他兩個(gè)模塊依賴core,這個(gè)logback-classic是log4j的改善版本,并且原生實(shí)現(xiàn)了SLF4J門面(具體參考前文:Java中SLF4J日志框架的實(shí)現(xiàn)原理)。模塊logback-access可以集成于Servlet容器,比如Tomact和Jetty。
3、你可以基于logback-core自己創(chuàng)建其他的模塊。
Logback相比log4j的優(yōu)勢
比log4j更快,重寫了內(nèi)核,在一些關(guān)鍵路徑上性能提升10倍,內(nèi)存占用也更少。
經(jīng)過大量的測試,和log4j測試不在一個(gè)量級。
logback-classic是SLF4J的實(shí)現(xiàn),切換其他日志框架非常方便,
文檔豐富并且不斷更新,支持Groovy風(fēng)格的配置文件
配置文件自動重新加載,如果更新了配置文件,logback-classic可以自動重新加載。
自動刪除日期較老的日志文件,maxHistory屬性,你可以控制已經(jīng)產(chǎn)生日志文件的最大數(shù)量。如果設(shè)置maxHistory為12,那那些log文件超過12個(gè)月的都會被自動移除。
自動壓縮歸檔的日志文件,壓縮文件是異步進(jìn)行,不影響應(yīng)用。
配置文件可以處理不同的環(huán)境開發(fā),測試,生產(chǎn)),這樣一個(gè)配置文件就可以適應(yīng)多個(gè)環(huán)境。
SiftingAppender(一個(gè)非常多功能的Appender) 它可以用來分割日志文件根據(jù)任何一個(gè)給定的運(yùn)行參數(shù)。如,SiftingAppender能夠區(qū)別日志事件跟進(jìn)用戶的Session,然后每個(gè)用戶會有一個(gè)日志文件。
下面看下SpringBoot整合logback的方法。
spring-boot-starter-web這個(gè)包幾乎是使用SpringBoot時(shí)必備的,其內(nèi)部已經(jīng)依賴了logback的組件,也就是說SpringBoot已經(jīng)幫你整合了logback。
只需要在resources目錄加上logback.xml文件,寫入內(nèi)容如下:
其中路徑、包名稱、保留周期等 根據(jù)自己的需要進(jìn)行修改即可
<?xml version="1.0" encoding="UTF-8"?>
<configuration>
<!-- 日志存放路徑 -->
<property name="log.path" value="./logs" />
<!-- 日志輸出格式 -->
<property name="log.pattern" value="%d{HH:mm:ss.SSS} [%thread] %-5level %logger{20} - [%method,%line] - %msg%n" />
<!-- 控制臺輸出 -->
<appender name="console" class="ch.qos.logback.core.ConsoleAppender">
<encoder>
<pattern>${log.pattern}</pattern>
</encoder>
</appender>
<!-- 系統(tǒng)日志輸出 -->
<appender name="file_info" class="ch.qos.logback.core.rolling.RollingFileAppender">
<file>${log.path}/sys-info.log</file>
<!-- 循環(huán)政策:基于時(shí)間創(chuàng)建日志文件 -->
<rollingPolicy class="ch.qos.logback.core.rolling.TimeBasedRollingPolicy">
<!-- 日志文件名格式 -->
<fileNamePattern>${log.path}/sys-info.%d{yyyy-MM-dd}.log</fileNamePattern>
<!-- 日志最大的歷史 60天 -->
<maxHistory>60</maxHistory>
</rollingPolicy>
<filter class="ch.qos.logback.classic.filter.LevelFilter">
<!-- 過濾的級別 -->
<level>INFO</level>
<!-- 匹配時(shí)的操作:接收(記錄) -->
<onMatch>ACCEPT</onMatch>
<!-- 不匹配時(shí)的操作:拒絕(不記錄) -->
<onMismatch>DENY</onMismatch>
</filter>
<appender name="file_error" class="ch.qos.logback.core.rolling.RollingFileAppender">
<file>${log.path}/sys-error.log</file>
<rollingPolicy class="ch.qos.logback.core.rolling.TimeBasedRollingPolicy">
<fileNamePattern>${log.path}/sys-error.%d{yyyy-MM-dd}.log</fileNamePattern>
</rollingPolicy>
<encoder>
<pattern>${log.pattern}</pattern>
</encoder>
<filter class="ch.qos.logback.classic.filter.LevelFilter">
<level>ERROR</level>
<!-- 匹配時(shí)的操作:接收(記錄) -->
<!-- 不匹配時(shí)的操作:拒絕(不記錄) -->
</appender>
<!-- 用戶訪問日志輸出 -->
<appender name="sys-user" class="ch.qos.logback.core.rolling.RollingFileAppender">
<file>${log.path}/sys-user.log</file>
<!-- 按天回滾 daily -->
<fileNamePattern>${log.path}/sys-user.%d{yyyy-MM-dd}.log</fileNamePattern>
<!-- 日志最大的歷史 60天 -->
<maxHistory>60</maxHistory>
<!-- 系統(tǒng)模塊日志級別控制 -->
<logger name="cn.vantee" level="info" />
<!-- Spring日志級別控制 -->
<logger name="org.springframework" level="warn" />
<root level="info">
<appender-ref ref="console" />
</root>
<!--系統(tǒng)操作日志-->
<root level="info">
<appender-ref ref="file_info" />
<appender-ref ref="file_error" />
</root>
<!--系統(tǒng)用戶操作日志-->
<logger name="sys-user" level="info">
<appender-ref ref="sys-user"/>
</logger>
</configuration>
在yml文件中加入如下配置:
logging:
level:
cn.vantee: debug
cn.vantee.mapper: trace
config: classpath:logback.xml
在需要打印日志的類上加入@Slf4j注解,即可使用log.info()、log.error()、log.debug()...打印日志。日志會自動記錄在logback.xml中指定的文件內(nèi)
到此這篇關(guān)于SpringBoot整合logback的文章就介紹到這了,更多相關(guān)SpringBoot整合logback內(nèi)容請搜索腳本之家以前的文章或繼續(xù)瀏覽下面的相關(guān)文章希望大家以后多多支持腳本之家!
相關(guān)文章
SpringBoot項(xiàng)目熱部署的實(shí)現(xiàn)
SpringBoot項(xiàng)目熱部署是一種讓開發(fā)人員在修改代碼后無需重啟應(yīng)用即可看到更改效果的技術(shù),通過使用SpringBoot的DevTools等工具,文中通過示例代碼介紹的非常詳細(xì),對大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友們下面隨著小編來一起學(xué)習(xí)學(xué)習(xí)吧2024-09-09
SpringCloud環(huán)境搭建過程之Rest使用小結(jié)
這篇文章主要介紹了SpringCloud環(huán)境搭建之Rest使用,本文通過實(shí)例代碼圖文相結(jié)合給大家介紹的非常詳細(xì),對大家的學(xué)習(xí)或工作具有一定的參考借鑒價(jià)值,需要的朋友可以參考下2022-08-08
Spring?Security過濾器鏈體系的實(shí)例詳解
這篇文章主要介紹了Spring?Security過濾器鏈體系,通過思維導(dǎo)圖可以很好的幫助大家理解配置類的相關(guān)知識,結(jié)合實(shí)例代碼給大家介紹的非常詳細(xì),需要的朋友可以參考下2022-02-02
redis統(tǒng)計(jì)APP在線人數(shù)的實(shí)例
這篇文章主要介紹了redis統(tǒng)計(jì)APP在線人數(shù)的實(shí)例,具有很好的參考價(jià)值,希望對大家有所幫助。一起跟隨小編過來看看吧2020-11-11
Java 比較接口comparable與comparator區(qū)別解析
這篇文章主要介紹了Java 比較接口comparable與comparator區(qū)別解析,文中通過示例代碼介紹的非常詳細(xì),對大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友可以參考下2019-10-10
Redis?+?Java攔截器實(shí)現(xiàn)用戶匿名和非匿名訪問
本文主要介紹了Redis?+?Java攔截器實(shí)現(xiàn)用戶匿名和非匿名訪問,文中通過示例代碼介紹的非常詳細(xì),對大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友們下面隨著小編來一起學(xué)習(xí)學(xué)習(xí)吧2022-06-06
MyBatis實(shí)現(xiàn)Mysql數(shù)據(jù)庫分庫分表操作和總結(jié)(推薦)
這篇文章主要介紹了MyBatis實(shí)現(xiàn)Mysql數(shù)據(jù)庫分庫分表操作和總結(jié),需要的朋友可以參考下2017-08-08
java中List刪除時(shí)需要的注意事項(xiàng)
最近在利用java中的LIST在刪除時(shí)發(fā)現(xiàn)了一個(gè)錯(cuò)我,通過查找相關(guān)的資料終于解決了,覺著有必要分享處理給同樣遇到這個(gè)問題的朋友參考,下面這篇文章主要介紹了java中List刪除時(shí)需要的注意事項(xiàng),需要的朋友可以一起來看看吧。2017-01-01

