国产 无码 综合区,色欲AV无码国产永久播放,无码天堂亚洲国产AV,国产日韩欧美女同一区二区

Spring boot日志配置

這篇具有很好參考價(jià)值的文章主要介紹了Spring boot日志配置。希望對(duì)大家有所幫助。如果存在錯(cuò)誤或未考慮完全的地方,請(qǐng)大家不吝賜教,您也可以點(diǎn)擊"舉報(bào)違法"按鈕提交疑問。

前言

Spring Boot 底層默認(rèn)使用 slf4j 和 logback 的方式記錄日志。工程中依賴了 spring-boot-starter-web,它又依賴了 spring-boot-starter-logging,所以不需要再手動(dòng)添加該依賴。在 Spring Boot 中,application.yml 支持部分 logback 的日志配置,但一些高級(jí)配置只能通過獨(dú)立的 xml 配置文件實(shí)現(xiàn),經(jīng)過 Spring Boot 的整合后,可支持多環(huán)境配置,但 logback 配置文件需要命名為 logback-spring.xml。如果使用了自定義日志配置文件,application.yml中 logging 有關(guān)配置就會(huì)失效。

springboot 默認(rèn)的 logback 配置

SpringBoot 默認(rèn)提供了一套 logback 的配置文件,位于 spring-boot依賴中的 org/springframework/boot/logging/logback/base.xml。

<included>
	<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/console-appender.xml" />
	<include resource="org/springframework/boot/logging/logback/file-appender.xml" />
	<root level="INFO">
		<appender-ref ref="CONSOLE" />
		<appender-ref ref="FILE" />
	</root>
</included>

該文件引入了三個(gè) xml 文件,并設(shè)置了root的日志級(jí)別為 info。console-appender.xml 和 file-appender.xml 中定義了日志的追加器,分別是名為 CONSOLE 的控制臺(tái)追加器 和 名為 FILE 的文件追加器。org/springframework/boot/logging/logback/defaults.xml 定義了 logback 的轉(zhuǎn)換器、一些包的日志級(jí)別、日志顯示格式。

<included>
	<conversionRule conversionWord="clr" converterClass="org.springframework.boot.logging.logback.ColorConverter" />
	<conversionRule conversionWord="wex" converterClass="org.springframework.boot.logging.logback.WhitespaceThrowableProxyConverter" />
	<conversionRule conversionWord="wEx" converterClass="org.springframework.boot.logging.logback.ExtendedWhitespaceThrowableProxyConverter" />
	<property name="CONSOLE_LOG_PATTERN" value="${CONSOLE_LOG_PATTERN:-%clr(%d{yyyy-MM-dd HH:mm:ss.SSS}){faint} %clr(${LOG_LEVEL_PATTERN:-%5p}) %clr(${PID:- }){magenta} %clr(---){faint} %clr([%15.15t]){faint} %clr(%-40.40logger{39}){cyan} %clr(:){faint} %m%n${LOG_EXCEPTION_CONVERSION_WORD:-%wEx}}"/>
	<property name="FILE_LOG_PATTERN" value="${FILE_LOG_PATTERN:-%d{yyyy-MM-dd HH:mm:ss.SSS} ${LOG_LEVEL_PATTERN:-%5p} ${PID:- } --- [%t] %-40.40logger{39} : %m%n${LOG_EXCEPTION_CONVERSION_WORD:-%wEx}}"/>

	<appender name="DEBUG_LEVEL_REMAPPER" class="org.springframework.boot.logging.logback.LevelRemappingAppender">
		<destinationLogger>org.springframework.boot</destinationLogger>
	</appender>

	<logger name="org.apache.catalina.startup.DigesterFactory" level="ERROR"/>
	<logger name="org.apache.catalina.util.LifecycleBase" level="ERROR"/>
	<logger name="org.apache.coyote.http11.Http11NioProtocol" level="WARN"/>
	<logger name="org.apache.sshd.common.util.SecurityUtils" level="WARN"/>
	<logger name="org.apache.tomcat.util.net.NioSelectorPool" level="WARN"/>
	<logger name="org.crsh.plugin" level="WARN"/>
	<logger name="org.crsh.ssh" level="WARN"/>
	<logger name="org.eclipse.jetty.util.component.AbstractLifeCycle" level="ERROR"/>
	<logger name="org.hibernate.validator.internal.util.Version" level="WARN"/>
	<logger name="org.springframework.boot.actuate.autoconfigure.CrshAutoConfiguration" level="WARN"/>
	<logger name="org.springframework.boot.actuate.endpoint.jmx" additivity="false">
		<appender-ref ref="DEBUG_LEVEL_REMAPPER"/>
	</logger>
	<logger name="org.thymeleaf" additivity="false">
		<appender-ref ref="DEBUG_LEVEL_REMAPPER"/>
	</logger>
</included>

默認(rèn)在控制臺(tái)中顯示彩色日志,就是因?yàn)槭褂昧宿D(zhuǎn)換器 ColorConverter,顯示的格式為 CONSOLE_LOG_PATTERN 中使用了該轉(zhuǎn)換器。在我們的自定義配置中可以復(fù)用這個(gè) default.xml 和 console-appender.xml。

自定義配置

在 src/main/resources/下創(chuàng)建配置文件 logback-spring.xml。

<?xml version="1.0" encoding="UTF-8"?>
<configuration>
? ? <include resource="org/springframework/boot/logging/logback/defaults.xml" />
? ? <include resource="org/springframework/boot/logging/logback/console-appender.xml" />

? ? <root level="INFO">
? ? ? ? <appender-ref ref="CONSOLE" />
? ? </root>
</configuration>

上面的配置引入了 spring boot 中 logback 的默認(rèn)配置和 CONSOLE 追加器,并定義了 root 的日志級(jí)別為 info。

日志級(jí)別

日志有五個(gè)級(jí)別:trace、debug、info、warn、error,級(jí)別依次較高,配置了某個(gè)級(jí)別,就會(huì)輸出該級(jí)別及其以上的級(jí)別。如,配置日志級(jí)別為 warn,則日志會(huì)輸出 warn、error;如果配置日志級(jí)別為 debug,則會(huì)輸出 debug、info、warn、error。

   @RequestMapping(value = "/testLogLevel", method = RequestMethod.GET)
    public String testLogLevel() {
        LOGGER.trace("hello,愛琴孩!");
        LOGGER.debug("hello,愛琴孩!");
        LOGGER.info("hello,愛琴孩!");
        LOGGER.warn("hello,愛琴孩!");
        LOGGER.error("hello,愛琴孩!");
        return "Success";
    }

注意,引入的 Logger 和 LoggerFactory 兩個(gè)類都是 slf4j 包下面的。上面的代碼分別輸出五個(gè)級(jí)別的日志。啟動(dòng)服務(wù),訪問 testLogLevel接口,控制臺(tái)輸出:

springboot日志配置,Springboot,spring boot,java,logback

?控制臺(tái)值輸出 info、warn、error,可以看出 SpringBoot 默認(rèn)輸出級(jí)別為 info??赏ㄟ^配置細(xì)粒度調(diào)整日志的級(jí)別:

<?xml version="1.0" encoding="UTF-8"?>
<configuration>
? ? ...
	<logger name="com.example.study.controller" level="trace" additivity="false">
		<appender-ref ref="CONSOLE"/>
	</logger>
? ?? ?...
</configuration>

上面按照包名更改了日志的顯示級(jí)別,com.example.study.controller 包下面的日志都是 trace 級(jí)別。上面配置選項(xiàng)"additivity",用于控制日志消息在日志層級(jí)之間的傳播方式。在Logback中,每個(gè)日志記錄器(logger)都有一個(gè)與之關(guān)聯(lián)的層級(jí)(level)。當(dāng)日志消息到達(dá)一個(gè)日志記錄器時(shí),Logback會(huì)將其傳播到所有具有相同或更高層級(jí)的日志記錄器。默認(rèn)情況下,Logback將日志消息傳播到所有父級(jí)日志記錄器。"additivity"的值可以是true或false。當(dāng)"additivity"設(shè)置為true時(shí),日志消息將被傳播到所有父級(jí)日志記錄器;當(dāng)"additivity"設(shè)置為false時(shí),日志消息將僅停留在當(dāng)前日志記錄器中,不會(huì)傳播到父級(jí)日志記錄器。通過配置"additivity",可以更細(xì)粒度地控制日志消息在應(yīng)用程序中的流動(dòng),避免在特定的日志記錄器中重復(fù)記錄日志消息,也可以提高日志記錄的性能。

重新訪問 testLogLevel接口,error、warn、info、debug、trace 都會(huì)全部打印出來。

springboot日志配置,Springboot,spring boot,java,logback

文件追加器

上面復(fù)用了 SpringBoot 自帶的控制臺(tái)追加器 CONSOLE,這里自定義文件追加器:

    <appender name="ServiceLogRollingFileAppender"
		class="ch.qos.logback.core.rolling.RollingFileAppender">
		<file>${LOG_FILE}</file>
		<encoder>
			<pattern>${FILE_LOG_PATTERN}</pattern>
		</encoder>
		<rollingPolicy class="ch.qos.logback.core.rolling.TimeBasedRollingPolicy">
			<fileNamePattern>${LOG_FILE}.%d{yyyy-MM-dd}.log
			</fileNamePattern>
		</rollingPolicy>
	</appender>

并在 root 中添加這個(gè)自定義 ServiceLogRollingFileAppender追加器:

<root level="INFO">
? ? <appender-ref ref="CONSOLE" />
? ? <appender-ref ref="ServiceLogRollingFileAppender" />
</root>

?多環(huán)境日志

假設(shè)希望在 local 時(shí),只輸出控制臺(tái)日志;在其他環(huán)境(dev、test等)輸出控制臺(tái)日志和文件日志。SpringBoot 提供了 springProfile 標(biāo)簽,通過該元素 name 屬性指定環(huán)境。修改 root 元素:

<root level="INFO">
? ? <springProfile name="local">
? ? ? ? <appender-ref ref="CONSOLE" />
? ? </springProfile>
? ? <springProfile name="!local">
? ? ? ? <appender-ref ref="CONSOLE" />
? ? ? ? <appender-ref ref="ServiceLogRollingFileAppender" />
? ? </springProfile>
</root>

分別使用 local 和 dev 啟動(dòng)服務(wù),測試多環(huán)境是否生效。我們自定義的 logback-spring.xml 充分利用了 Spring Boot 官方提供的配置,最終完整配置如下:

<?xml version="1.0" encoding="UTF-8"?>
<configuration>
	<include resource="org/springframework/boot/logging/logback/defaults.xml" />
	<springProperty scop="context" name="LOG_SERVICE_NAME"  source="logging.service.name" />
	<property name="CONSOLE_LOG_PATTERN"
		value="%clr(%d{yyyy-MM-dd HH:mm:ss.SSS}){faint} %clr(${LOG_SERVICE_NAME}){faint} %clr(${PID:- }){magenta} %clr([%15.15t]){faint} %clr(${LOG_LEVEL_PATTERN:-%5p}) %clr(%-40.40class{39} %5.5L){cyan}%clr(:){faint} %m%n${LOG_EXCEPTION_CONVERSION_WORD:-%wEx}" />
	<property name="FILE_LOG_PATTERN"
		value="%d{yyyy-MM-dd HH:mm:ss.SSS} ${LOG_SERVICE_NAME:-%5p} ${PID:- } [%t] ${LOG_LEVEL_PATTERN:-%5p} %-40.40class{39} %5.5L: %m%n${LOG_EXCEPTION_CONVERSION_WORD:-%wEx}" />
	<property name="LOG_FILE"
		value="${LOG_FILE:-${LOG_PATH:-${LOG_TEMP:-${java.io.tmpdir:-/tmp}}/}spring.log}" />

	<include
		resource="org/springframework/boot/logging/logback/console-appender.xml" />

	<appender name="ServiceLogRollingFileAppender"
		class="ch.qos.logback.core.rolling.RollingFileAppender">
		<file>${LOG_FILE}</file>
		<encoder>
			<pattern>${FILE_LOG_PATTERN}</pattern>
		</encoder>
		<rollingPolicy class="ch.qos.logback.core.rolling.TimeBasedRollingPolicy">
			<fileNamePattern>${LOG_FILE}.%d{yyyy-MM-dd}.log
			</fileNamePattern>
		</rollingPolicy>
	</appender>

	<root level="INFO">
		<springProfile name="local">
			<appender-ref ref="CONSOLE" />
		</springProfile>
		<springProfile name="!local">
			<appender-ref ref="CONSOLE" />
			<appender-ref ref="ServiceLogRollingFileAppender" />
		</springProfile>
	</root>

	<logger name="com.example.study.controller" level="trace" additivity="false">
		<appender-ref ref="CONSOLE"/>
	</logger>

</configuration>


?文章來源地址http://www.zghlxwxcb.cn/news/detail-727586.html

到了這里,關(guān)于Spring boot日志配置的文章就介紹完了。如果您還想了解更多內(nèi)容,請(qǐng)?jiān)谟疑辖撬阉鱐OY模板網(wǎng)以前的文章或繼續(xù)瀏覽下面的相關(guān)文章,希望大家以后多多支持TOY模板網(wǎng)!

本文來自互聯(lián)網(wǎng)用戶投稿,該文觀點(diǎn)僅代表作者本人,不代表本站立場。本站僅提供信息存儲(chǔ)空間服務(wù),不擁有所有權(quán),不承擔(dān)相關(guān)法律責(zé)任。如若轉(zhuǎn)載,請(qǐng)注明出處: 如若內(nèi)容造成侵權(quán)/違法違規(guī)/事實(shí)不符,請(qǐng)點(diǎn)擊違法舉報(bào)進(jìn)行投訴反饋,一經(jīng)查實(shí),立即刪除!

領(lǐng)支付寶紅包贊助服務(wù)器費(fèi)用

相關(guān)文章

  • 【Spring Boot】Spring Boot的系統(tǒng)配置 — 日志配置

    日志對(duì)于系統(tǒng)監(jiān)控、故障定位非常重要,比如當(dāng)生產(chǎn)系統(tǒng)發(fā)生問題時(shí),完整清晰的日志記錄有助于快速定位問題。接下來介紹Spring Boot對(duì)日志的支持。 Spring Boot自帶spring-boot-starter-logging庫實(shí)現(xiàn)系統(tǒng)日志功能,spring-boot-starter-logging組件默認(rèn)使用LogBack日志記錄工具。系統(tǒng)運(yùn)行日志

    2024年02月11日
    瀏覽(24)
  • Spring boot日志配置

    Spring boot日志配置

    Spring Boot 底層默認(rèn)使用 slf4j 和 logback 的方式記錄日志。工程中依賴了 spring-boot-starter-web,它又依賴了 spring-boot-starter-logging,所以不需要再手動(dòng)添加該依賴。在 Spring Boot 中,application.yml 支持部分 logback 的日志配置,但一些高級(jí)配置只能通過獨(dú)立的 xml 配置文件實(shí)現(xiàn),經(jīng)過 Sp

    2024年02月07日
    瀏覽(27)
  • Spring Boot配置保存日志文件

    springboot日志配置: springboot默認(rèn)日志是打印再console中的,不會(huì)保存在文件中。我們項(xiàng)目上線肯定要保存日志用于分析的。 一、使用xml配置日志保存(并不需要pom配置slf4j依賴,starter里面已經(jīng)配置了依賴了) 1、在項(xiàng)目的resources目錄下創(chuàng)建一個(gè)【logback-spring.xml】日志配置文件

    2024年02月11日
    瀏覽(29)
  • Spring Boot 配置文件和日志

    Spring Boot 配置文件和日志

    目錄 配置文件格式 properties配置文件說明 1.properties基本語法 2.讀取配置文件 3.properties缺點(diǎn) yml配置文件說明 1.yml基本語法 2.配置不同數(shù)據(jù)類型 3.字符串特殊情況 4.配置對(duì)象 properties和yml對(duì)比 日志 日志的使用 日志級(jí)別 日志持久化 Lombok Lombok原理解釋 Spring中配置文件有很重要的

    2024年01月19日
    瀏覽(21)
  • 【Spring】SpringBoot日志

    【Spring】SpringBoot日志

    在計(jì)算機(jī)領(lǐng)域,日志是一個(gè)記錄了發(fā)生在運(yùn)行中的操作系統(tǒng)或其他軟件中的事件,或者記錄了在網(wǎng)絡(luò)聊天軟件的用戶之間發(fā)送的消息。 通常情況下,系統(tǒng)日志是用戶可以直接閱讀的文本文件,其中包含了一個(gè)時(shí)間戳和一個(gè)信息或者子系統(tǒng)所特有的其他信息。任何系統(tǒng)中,日志

    2024年02月04日
    瀏覽(22)
  • Spring Boot配置文件及日志信息

    Spring Boot配置文件及日志信息

    目錄 前言: Spring Boot優(yōu)點(diǎn) 配置文件 配置文件格式 讀取配置文件 properties配置文件格式 properties優(yōu)缺點(diǎn)分析 yml配置文件格式(另一種標(biāo)記語言) yml優(yōu)缺點(diǎn)分析 Spring Boot 不同平臺(tái)配置文件規(guī)則 日志信息 日志的功能 Spring Boot內(nèi)置日志框架 使用日志 得到日志對(duì)象 打印日志 日志

    2024年02月01日
    瀏覽(20)
  • 【JavaEE & Spring】SpringBoot 日志

    【JavaEE & Spring】SpringBoot 日志

    為什么要學(xué)習(xí)日志 對(duì)于平常來說, 我們就在使? System.out.print 來打印?志了 隨著項(xiàng)?的復(fù)雜度提升, 我們對(duì)?志的打印也有了更?的需求, ?不僅僅是定位排查問題. 有時(shí)候我們需要將日志持久化, 進(jìn)行對(duì)應(yīng)的數(shù)據(jù)分析, 但是 System.out.print 不能很好的滿?我們的需求, 我們就需要

    2024年01月25日
    瀏覽(24)
  • 【Java】Spring Boot 日志文件

    【Java】Spring Boot 日志文件

    日志是程序的重要組成部分,想象一下,如果程序報(bào)錯(cuò)了,不讓你打開控制臺(tái)看日志,那么你能找到報(bào)錯(cuò)的原因嗎。 日志對(duì)于我們來說,最主要的用途就是排除和定位問題。除了發(fā)現(xiàn)和定位問題之外,我們還可以通過日志實(shí)現(xiàn)以下功能: 記錄用戶登錄日志,方便分析用戶是

    2024年02月01日
    瀏覽(45)
  • 如何在 Spring Boot 中配置日志記錄?

    在Spring Boot中配置日志記錄是一項(xiàng)關(guān)鍵任務(wù),因?yàn)榱己玫娜罩居涗浭菓?yīng)用程序開發(fā)和維護(hù)的必要組成部分。Spring Boot采用了一種靈活且強(qiáng)大的方式來管理日志,允許開發(fā)人員使用不同的日志框架,并提供了易于配置的選項(xiàng)。下面詳細(xì)介紹在Spring Boot中配置日志記錄的過程,包括

    2024年01月25日
    瀏覽(42)
  • Spring Boot 如何配置日志級(jí)別和輸出格式

    Spring Boot 如何配置日志級(jí)別和輸出格式

    在開發(fā)一個(gè)應(yīng)用程序時(shí),日志記錄是非常重要的一環(huán)。Spring Boot 提供了多種日志輸出方式和配置選項(xiàng),本文將介紹如何在 Spring Boot 應(yīng)用程序中配置日志級(jí)別和輸出格式。 在 Spring Boot 應(yīng)用程序中,我們可以通過修改配置文件或者編程方式來配置日志級(jí)別。在下面的示例中,我

    2024年02月14日
    瀏覽(17)

覺得文章有用就打賞一下文章作者

支付寶掃一掃打賞

博客贊助

微信掃一掃打賞

請(qǐng)作者喝杯咖啡吧~博客贊助

支付寶掃一掃領(lǐng)取紅包,優(yōu)惠每天領(lǐng)

二維碼1

領(lǐng)取紅包

二維碼2

領(lǐng)紅包