SpringBoot整合logback的示例代碼
Logback簡介
1、logback和log4j是同一個作者,logback可以看作是log4j的升級版
2、logback分為三個模塊, logback-core, logback-classic 和logback-access,其中 logback-core是核心,其他兩個模塊依賴core,這個logback-classic是log4j的改善版本,并且原生實現(xiàn)了SLF4J門面(具體參考前文:Java中SLF4J日志框架的實現(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測試不在一個量級。
logback-classic是SLF4J的實現(xiàn),切換其他日志框架非常方便,
文檔豐富并且不斷更新,支持Groovy風(fēng)格的配置文件
配置文件自動重新加載,如果更新了配置文件,logback-classic可以自動重新加載。
自動刪除日期較老的日志文件,maxHistory屬性,你可以控制已經(jīng)產(chǎn)生日志文件的最大數(shù)量。如果設(shè)置maxHistory為12,那那些log文件超過12個月的都會被自動移除。
自動壓縮歸檔的日志文件,壓縮文件是異步進(jìn)行,不影響應(yīng)用。
配置文件可以處理不同的環(huán)境開發(fā),測試,生產(chǎn)),這樣一個配置文件就可以適應(yīng)多個環(huán)境。
SiftingAppender(一個非常多功能的Appender) 它可以用來分割日志文件根據(jù)任何一個給定的運行參數(shù)。如,SiftingAppender能夠區(qū)別日志事件跟進(jìn)用戶的Session,然后每個用戶會有一個日志文件。
下面看下SpringBoot整合logback的方法。
spring-boot-starter-web這個包幾乎是使用SpringBoot時必備的,其內(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)政策:基于時間創(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> <!-- 匹配時的操作:接收(記錄) --> <onMatch>ACCEPT</onMatch> <!-- 不匹配時的操作:拒絕(不記錄) --> <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> <!-- 匹配時的操作:接收(記錄) --> <!-- 不匹配時的操作:拒絕(不記錄) --> </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)文章
Vue3源碼解讀effectScope API及實現(xiàn)原理
這篇文章主要為大家介紹了Vue3源碼解讀effectScope API及實現(xiàn)原理,有需要的朋友可以借鑒參考下,希望能夠有所幫助,祝大家多多進(jìn)步,早日升職加薪2023-03-03KotlinScript構(gòu)建SpringBootStarter保姆級教程
這篇文章主要為大家介紹了KotlinScript構(gòu)建SpringBootStarter的保姆級教程,有需要的朋友可以借鑒參考下,希望能夠有所幫助,祝大家多多進(jìn)步,早日升職加薪2022-09-09解決Springboot @Autowired 無法注入問題
WebappApplication 一定要在包的最外層,否則Spring無法對所有的類進(jìn)行托管,會造成@Autowired 無法注入。接下來給大家介紹解決Springboot @Autowired 無法注入問題,感興趣的朋友一起看看吧2018-08-08Java創(chuàng)建student類詳細(xì)代碼例子
這篇文章主要給大家介紹了關(guān)于Java創(chuàng)建student類的相關(guān)資料,學(xué)生類(Student)是一種面向?qū)ο蟮木幊谈拍?其主要用于描述學(xué)生的屬性和行為,文中通過代碼介紹的非常詳細(xì),需要的朋友可以參考下2023-11-11Spring Boot Admin(監(jiān)控工具)的使用
今天我們將會講解一個優(yōu)秀的監(jiān)控工具Spring Boot Admin。 它采用圖形化的界面,讓我們的Spring Boot管理更加簡單,需要的朋友可以參考下2020-02-02MyBatis如何實現(xiàn)多表查詢(多對一、一對多)
這篇文章主要給大家介紹了關(guān)于MyBatis如何實現(xiàn)多表查詢(多對一、一對多)的相關(guān)資料,文中通過示例代碼介紹的非常詳細(xì),對大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價值,需要的朋友們下面隨著小編來一起學(xué)習(xí)學(xué)習(xí)吧2021-05-05