SpringBoot項(xiàng)目的logback日志配置(包括打印mybatis的sql語(yǔ)句)
關(guān)于logback日志的詳解見(jiàn)這位仁兄的博客:Spring Boot-日志配置(超詳細(xì))
我在這就開(kāi)門(mén)見(jiàn)山直接介紹我們項(xiàng)目日志的配置使用吧!~
1、基本介紹
默認(rèn)情況下,Spring Boot項(xiàng)目就會(huì)用Logback來(lái)記錄日志,并用INFO級(jí)別輸出到控制臺(tái)。如下圖:
實(shí)際開(kāi)發(fā)中我們不需要直接添加logback日志依賴。
你會(huì)發(fā)現(xiàn) spring-boot-starter 其中包含了 spring-boot-starter-logging,該依賴內(nèi)容就是 Spring Boot 默認(rèn)的日志框架 logback。
日志級(jí)別從低到高分為:
TRACE < DEBUG < INFO < WARN < ERROR < FATAL
只能展示大于或等于設(shè)置的日志級(jí)別的日志;也就是說(shuō)springboot默認(rèn)級(jí)別為INFO,那么在控制臺(tái)展示的日志級(jí)別只有INFO 、WARN、ERROR、FATAL
2、logback.xml日志文件配置
根據(jù)不同的日志系統(tǒng),你可以按如下規(guī)則組織配置文件名,就能被正確加載:
- Logback:
logback-spring.xml,
logback-spring.groovy
,logback.xml
,logback.groovy
- Log4j:
log4j-spring.properties
,log4j-spring.xml
,log4j.properties
,log4j.xml
- Log4j2:
log4j2-spring.xml
,log4j2.xml
- JDK (Java Util Logging):
logging.properties
Spring Boot官方推薦優(yōu)先使用帶有 -spring 的文件名作為你的日志配置(如使用 logback-spring.xml ,而不是logback.xml),命名為logback-spring.xml的日志配置文件,spring boot可以為它添加一些spring boot特有的配置項(xiàng)(下面會(huì)提到)。
默認(rèn)的命名規(guī)則,并且放在 src/main/resources 下如果你即想完全掌控日志配置,但又不想用logback.xml作為L(zhǎng)ogback配置的名字,application.yml可以通過(guò)logging.config屬性指定自定義的名字:
logging.config=classpath:logging-config.xml
這里寫(xiě)代碼片雖然一般并不需要改變配置文件的名字,但是如果你想針對(duì)不同運(yùn)行時(shí)Profile使用不同的日志配置,這個(gè)功能會(huì)很有用。
我們項(xiàng)目的日志配置內(nèi)容:
<?xml version="1.0" encoding="UTF-8"?> <configuration> <!-- 此xml在spring-boot-1.5.3.RELEASE.jar里 --> <include resource="org/springframework/boot/logging/logback/defaults.xml" /> <include resource="org/springframework/boot/logging/logback/console-appender.xml" /> <!-- 開(kāi)啟后可以通過(guò)jmx動(dòng)態(tài)控制日志級(jí)別(springboot Admin的功能) --> <!--<jmxConfigurator/>--> <appender name="FILE" class="ch.qos.logback.core.rolling.RollingFileAppender"> <!--<File>/home/hfw-client/hfw_log/stdout.log</File>--> <File>D:/log/hfw-client/hfw_log/stdout.log</File> <encoder> <pattern>%date [%level] [%thread] %logger{60} [%file : %line] %msg%n</pattern> </encoder> <rollingPolicy class="ch.qos.logback.core.rolling.TimeBasedRollingPolicy"> <!-- 添加.gz 歷史日志會(huì)啟用壓縮 大大縮小日志文件所占空間 --> <!--<fileNamePattern>/home/hfw-client/hfw_log/stdout.log.%d{yyyy-MM-dd}.log</fileNamePattern>--> <fileNamePattern>D:/log/hfw-client/hfw_log/stdout.log.%d{yyyy-MM-dd}.log</fileNamePattern> <maxHistory>30</maxHistory><!-- 保留30天日志 --> </rollingPolicy> </appender> <logger name="com.moerlong.hfw.dao" level="DEBUG" /> <root level="INFO"> <appender-ref ref="CONSOLE"/> <appender-ref ref="FILE"/> </root> </configuration>
3、打印mybatis的sql語(yǔ)句
比較蠢的方法是直接把root標(biāo)簽的level屬性改為DEBUG:
<root level="DEBUG"> <appender-ref ref="CONSOLE"/> <appender-ref ref="FILE"/> </root>
這個(gè)改為DEBUG則會(huì)打印最詳細(xì)的日志,包括mybatis的sql語(yǔ)句(量太大建議開(kāi)發(fā)測(cè)試時(shí)才用)
我們一般針對(duì)DAO的包進(jìn)行DEBUG日志設(shè)置:
<logger name="com.moerlong.hfw.dao" level="DEBUG" />
這樣的話,只打印SQL語(yǔ)句:
4、代碼里打印日志
之前我們大多數(shù)時(shí)候自己在每個(gè)類創(chuàng)建日志對(duì)象去打印信息,比較麻煩:
private static final Logger logger = LoggerFactory.getLogger(YjServiceImpl.class); logger.error("xxx");
現(xiàn)在可以直接在類上通過(guò) @Slf4j 標(biāo)簽去聲明式注解日志對(duì)象
先在pom.xml中添加依賴:
<!--@Slf4j自動(dòng)化日志對(duì)象-log--> <dependency> <groupId>org.projectlombok</groupId> <artifactId>lombok</artifactId> <version>1.16.16</version> </dependency>
然后就直接可以使用了:
@Slf4j @RestController public class HfwController { log.info(""); }
到此這篇關(guān)于SpringBoot項(xiàng)目的logback日志配置(包括打印mybatis的sql語(yǔ)句)的文章就介紹到這了,更多相關(guān)SpringBoot logback日志配置內(nèi)容請(qǐng)搜索腳本之家以前的文章或繼續(xù)瀏覽下面的相關(guān)文章希望大家以后多多支持腳本之家!
- IDEA?設(shè)置?SpringBoot?logback?彩色日志的解決方法?附配置文件
- Springboot使用Logback實(shí)現(xiàn)日志配置與異常記錄
- Spring Boot日志技術(shù)logback原理及配置解析
- springboot配置logback日志管理過(guò)程詳解
- 基于logback 實(shí)現(xiàn)springboot超級(jí)詳細(xì)的日志配置
- spring boot使用logback實(shí)現(xiàn)多環(huán)境日志配置詳解
- 詳解Spring Boot配置使用Logback進(jìn)行日志記錄的實(shí)戰(zhàn)
- 詳解Spring Boot 使用slf4j+logback記錄日志配置
- 如何為?Spring?Boot?項(xiàng)目配置?Logback?日志
相關(guān)文章
JavaWeb實(shí)現(xiàn)同一帳號(hào)同一時(shí)間只能一個(gè)地點(diǎn)登陸(類似QQ登錄的功能)
最近做了企業(yè)項(xiàng)目,其中有這樣的需求要求同一帳號(hào)同一時(shí)間只能一個(gè)地點(diǎn)登陸類似QQ登錄的功能。下面小編通過(guò)本文給大家分享實(shí)現(xiàn)思路,感興趣的朋友參考下吧2016-11-11不調(diào)用方法實(shí)現(xiàn)hutool導(dǎo)出excel圖片示例詳解
這篇文章主要為大家介紹了不調(diào)用方法實(shí)現(xiàn)hutool導(dǎo)出excel圖片示例詳解,有需要的朋友可以借鑒參考下,希望能夠有所幫助,祝大家多多進(jìn)步,早日升職加薪2022-08-08JavaWeb中Session對(duì)象的學(xué)習(xí)筆記
在WEB開(kāi)發(fā)中,服務(wù)器可以為每個(gè)用戶瀏覽器創(chuàng)建一個(gè)會(huì)話對(duì)象,即session對(duì)象,這篇文章就為大家詳細(xì)介紹Session對(duì)象的定義、實(shí)現(xiàn)原理等基礎(chǔ)知識(shí)點(diǎn),感興趣的小伙伴們可以參考一下2016-05-05Java8新特性之lambda(動(dòng)力節(jié)點(diǎn)Java學(xué)院整理)
這篇文章主要介紹了Java8新特性之lambda(動(dòng)力節(jié)點(diǎn)Java學(xué)院整理)表達(dá)式的相關(guān)知識(shí),包括lambda語(yǔ)法方面的知識(shí),非常不錯(cuò),具有參考借鑒價(jià)值,需要的朋友參考下吧2017-06-06Java多線程 BlockingQueue實(shí)現(xiàn)生產(chǎn)者消費(fèi)者模型詳解
這篇文章主要介紹了Java多線程 BlockingQueue實(shí)現(xiàn)生產(chǎn)者消費(fèi)者模型詳解,文中通過(guò)示例代碼介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友可以參考下2019-09-09mybatis中的if?test判斷入?yún)⒌闹祮?wèn)題
這篇文章主要介紹了mybatis中的if?test判斷入?yún)⒌闹祮?wèn)題,具有很好的參考價(jià)值,希望對(duì)大家有所幫助。如有錯(cuò)誤或未考慮完全的地方,望不吝賜教2022-06-06SpringSecurity集成第三方登錄過(guò)程詳解(最新推薦)
在ThirdAuthenticationFilter 類的attemptAuthentication()方法中,我們通過(guò)authType類型,然后創(chuàng)建對(duì)應(yīng)的Authentication實(shí)現(xiàn)來(lái)實(shí)現(xiàn)不同方式的登錄,下面給大家分享SpringSecurity集成第三方登錄過(guò)程,感興趣的朋友一起看看吧2024-05-05struts1登錄示例代碼_動(dòng)力節(jié)點(diǎn)Java學(xué)院整理
這篇文章主要介紹了struts1登錄示例代碼,需要的朋友可以參考下2017-08-08