這篇文章主要講解了“spring boot 2日志怎么實(shí)現(xiàn)”,文中的講解內(nèi)容簡單清晰,易于學(xué)習(xí)與理解,下面請大家跟著小編的思路慢慢深入,一起來研究和學(xué)習(xí)“spring boot 2日志怎么實(shí)現(xiàn)”吧!
成都創(chuàng)新互聯(lián)公司基于分布式IDC數(shù)據(jù)中心構(gòu)建的平臺為眾多戶提供四川聯(lián)通機(jī)房服務(wù)器托管 四川大帶寬租用 成都機(jī)柜租用 成都服務(wù)器租用。
Spring Boot除了commons-loggingAPI外沒有其他強(qiáng)制性的日志依賴,你有很多可選的日志實(shí)現(xiàn)。想要使用Logback,你需要包含它及jcl-over-slf4j(它實(shí)現(xiàn)了Commons Logging API)。最簡單的方式是通過依賴spring-boot-starter-logging的starters。對于一個(gè)web應(yīng)用程序,你只需添加spring-boot-starter-web依賴,因?yàn)樗蕾囉趌ogging starter。例如,使用Maven:
<dependency> <groupId>org.springframework.boot</groupId> <artifactId>spring-boot-starter-web</artifactId> </dependency>
Spring Boot有一個(gè)LoggingSystem抽象,用于嘗試通過classpath上下文配置日志系統(tǒng)。如果Logback可用,則首選它。如果你唯一需要做的就是設(shè)置不同日志級別,那可以通過在application.properties中使用logging.level前綴實(shí)現(xiàn),比如:
logging.level.org.springframework.web=DEBUG logging.level.org.hibernate=ERROR
你也可以使用logging.file設(shè)置日志文件的位置(除控制臺之外,默認(rèn)會輸出到控制臺)。
想要對日志系統(tǒng)進(jìn)行更細(xì)粒度的配置,你需要使用LoggingSystem支持的原生配置格式。默認(rèn)情況下,Spring Boot從系統(tǒng)的默認(rèn)位置加載原生配置(比如對于Logback為classpath:logback.xml),但你可以使用logging.config屬性設(shè)置配置文件的位置。
如果你將logback.xml放到classpath根目錄下,那它將會被從這加載(或logback-spring.xml充分利用Boot提供的模板特性)。Spring Boot提供一個(gè)默認(rèn)的基本配置,如果你只是設(shè)置日志級別,那你可以包含它,比如:
<?xml version="1.0" encoding="UTF-8"?> <configuration> <include resource="org/springframework/boot/logging/logback/base.xml"/> <logger name="org.springframework.web" level="DEBUG"/> </configuration>
如果查看spring-boot jar中的base.xml,你將會看到LoggingSystem為你創(chuàng)建的很多有用的系統(tǒng)屬性,比如:
${PID},當(dāng)前進(jìn)程id。
${LOG_FILE},如果在Boot外部配置中設(shè)置了logging.file。
${LOG_PATH},如果設(shè)置了logging.path(表示日志文件產(chǎn)生的目錄)。
${LOG_EXCEPTION_CONVERSION_WORD},如果在Boot外部配置中設(shè)置了logging.exception-conversion-word。
Spring Boot也提供使用自定義的Logback轉(zhuǎn)換器在控制臺上輸出一些漂亮的彩色ANSI日志信息(不是日志文件),具體參考默認(rèn)的base.xml配置。
如果Groovy在classpath下,你也可以使用logback.groovy配置Logback。
如果想禁用控制臺日志記錄,只將輸出寫入文件中,你需要一個(gè)只導(dǎo)入file-appender.xml而不是console-appender.xml的自定義logback-spring.xml:
<?xml version="1.0" encoding="UTF-8"?> <configuration> <include resource="org/springframework/boot/logging/logback/defaults.xml" /> <property name="LOG_FILE" value="${LOG_FILE:-${LOG_PATH:-${LOG_TEMP:-${java.io.tmpdir:-/tmp}}/}spring.log}"/> <include resource="org/springframework/boot/logging/logback/file-appender.xml" /> <root level="INFO"> <appender-ref ref="FILE" /> </root> </configuration>
你還需要將logging.file添加到application.properties:
logging.file=myapplication.log
如果Log4j 2出現(xiàn)在classpath下,Spring Boot會將其作為日志配置。如果你正在使用starters進(jìn)行依賴裝配,這意味著你需要排除Logback,然后包含log4j 2。如果不使用starters,除了添加Log4j 2,你還需要提供jcl-over-slf4j依賴(至少)。
最簡單的方式可能就是通過starters,盡管它需要排除一些依賴,比如,在Maven中:
<dependency> <groupId>org.springframework.boot</groupId> <artifactId>spring-boot-starter-web</artifactId> </dependency> <dependency> <groupId>org.springframework.boot</groupId> <artifactId>spring-boot-starter</artifactId> <exclusions> <exclusion> <groupId>org.springframework.boot</groupId> <artifactId>spring-boot-starter-logging</artifactId> </exclusion> </exclusions> </dependency> <dependency> <groupId>org.springframework.boot</groupId> <artifactId>spring-boot-starter-log4j2</artifactId> </dependency>
注 Log4j starters會收集好依賴以滿足普通日志記錄的需求(比如,Tomcat中使用java.util.logging,但使用Log4j 2作為輸出),具體查看Actuator Log4j 2的示例,了解如何將它用于實(shí)戰(zhàn)。
除了它的默認(rèn)XML配置格式,Log4j 2也支持YAML和JSON配置文件。想使用其他配置文件格式配置Log4j 2,你需要添加合適的依賴到classpath,并以匹配所選格式的方式命名配置文件:
格式 | 依賴 | 文件名 |
---|---|---|
YAML | com.fasterxml.jackson.core:jackson-databindcom.fasterxml.jackson.dataformat:jackson-dataformat-yaml | log4j2.yamllog4j2.yml |
JSON | com.fasterxml.jackson.core:jackson-databind | log4j2.jsonlog4j2.jsn |
感謝各位的閱讀,以上就是“spring boot 2日志怎么實(shí)現(xiàn)”的內(nèi)容了,經(jīng)過本文的學(xué)習(xí)后,相信大家對spring boot 2日志怎么實(shí)現(xiàn)這一問題有了更深刻的體會,具體使用情況還需要大家實(shí)踐驗(yàn)證。這里是創(chuàng)新互聯(lián),小編將為大家推送更多相關(guān)知識點(diǎn)的文章,歡迎關(guān)注!
本文名稱:springboot2日志怎么實(shí)現(xiàn)
本文來源:http://aaarwkj.com/article38/gihcsp.html
成都網(wǎng)站建設(shè)公司_創(chuàng)新互聯(lián),為您提供企業(yè)建站、自適應(yīng)網(wǎng)站、靜態(tài)網(wǎng)站、ChatGPT、企業(yè)網(wǎng)站制作、網(wǎng)站收錄
聲明:本網(wǎng)站發(fā)布的內(nèi)容(圖片、視頻和文字)以用戶投稿、用戶轉(zhuǎn)載內(nèi)容為主,如果涉及侵權(quán)請盡快告知,我們將會在第一時(shí)間刪除。文章觀點(diǎn)不代表本網(wǎng)站立場,如需處理請聯(lián)系客服。電話:028-86922220;郵箱:631063699@qq.com。內(nèi)容未經(jīng)允許不得轉(zhuǎn)載,或轉(zhuǎn)載時(shí)需注明來源: 創(chuàng)新互聯(lián)