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

SpringCore完整學(xué)習(xí)教程4,入門級(jí)別

這篇具有很好參考價(jià)值的文章主要介紹了SpringCore完整學(xué)習(xí)教程4,入門級(jí)別。希望對(duì)大家有所幫助。如果存在錯(cuò)誤或未考慮完全的地方,請(qǐng)大家不吝賜教,您也可以點(diǎn)擊"舉報(bào)違法"按鈕提交疑問。

本章從第4章開始

4. Logging

Spring Boot使用Commons Logging進(jìn)行所有內(nèi)部日志記錄,但保留底層日志實(shí)現(xiàn)開放。為Java Util Logging、Log4J2和Logback提供了默認(rèn)配置。在每種情況下,記錄器都預(yù)先配置為使用控制臺(tái)輸出和可選的文件輸出。
默認(rèn)情況下,如果您使用“starter”,則使用Logback進(jìn)行日志記錄。還包括適當(dāng)?shù)腖ogback路由,以確保使用Java Util Logging、Commons Logging、Log4J或SLF4J的依賴庫(kù)都能正確工作。

Java有很多可用的日志框架。如果上面的列表看起來令人困惑,不要擔(dān)心。一般來說,您不需要更改日志依賴項(xiàng),Spring Boot默認(rèn)值也可以正常工作。

當(dāng)將應(yīng)用程序部署到servlet容器或應(yīng)用程序服務(wù)器時(shí),使用Java Util logging API執(zhí)行的日志記錄不會(huì)路由到應(yīng)用程序的日志中。這可以防止容器或已部署到容器的其他應(yīng)用程序執(zhí)行的日志記錄出現(xiàn)在應(yīng)用程序的日志中。

4.1. Log Format

Spring Boot的默認(rèn)日志輸出類似如下示例:

2023-10-28 18:53:33.562  INFO 21592 --- [nio-3344-exec-1] o.a.c.c.C.[Tomcat].[localhost].[/]       : Initializing Spring DispatcherServlet 'dispatcherServlet'
2023-10-28 18:53:33.562  INFO 21592 --- [nio-3344-exec-1] o.s.web.servlet.DispatcherServlet        : Initializing Servlet 'dispatcherServlet'
2023-10-28 18:53:33.563  INFO 21592 --- [nio-3344-exec-1] o.s.web.servlet.DispatcherServlet        : Completed initialization in 1 ms

Logback沒有致命級(jí)別。它被映射到ERROR。

4.2. Console Output

默認(rèn)日志配置在寫入消息時(shí)將消息回顯到控制臺(tái)。缺省情況下,日志記錄級(jí)別為ERROR-level、WARN-level和INFO-level。您還可以通過使用——debug標(biāo)志啟動(dòng)應(yīng)用程序來啟用“調(diào)試”模式。

類似于:

$ java -jar myapp.jar --debug

又或者,在配置文件中寫入:

debug=true

當(dāng)啟用調(diào)試模式時(shí),將配置一些核心日志記錄器(嵌入式容器、Hibernate和Spring Boot)以輸出更多信息。啟用調(diào)試模式不會(huì)將應(yīng)用程序配置為以debug級(jí)別記錄所有消息。
或者,您可以通過使用——trace標(biāo)志啟動(dòng)應(yīng)用程序來啟用“跟蹤”模式(或在application.properties中使用trace=true)。這樣做可以對(duì)選定的核心記錄器(嵌入式容器、Hibernate模式生成和整個(gè)Spring組合)進(jìn)行跟蹤日志記錄。

4.2.1. Color-coded Output

如果您的終端支持ANSI,則使用顏色輸出來提高可讀性。您可以將spring.output.ansi.enabled設(shè)置為支持的值以覆蓋自動(dòng)檢測(cè)。
使用%clr轉(zhuǎn)換字配置顏色編碼。在其最簡(jiǎn)單的形式中,轉(zhuǎn)換器根據(jù)日志級(jí)別為輸出著色,如下例所示:

%clr(%5p)

日志級(jí)別與顏色的對(duì)應(yīng)關(guān)系如下表所示:

Level Color

FATAL

Red

ERROR

Red

WARN

Yellow

INFO

Green

DEBUG

Green

TRACE

Green

4.3. File Output

默認(rèn)情況下,Spring Boot只記錄到控制臺(tái),不寫日志文件。如果除了控制臺(tái)輸出之外還想寫入日志文件,則需要設(shè)置logging.file.name或logging.file.path屬性(例如,在application.properties中)。
下表顯示了如何進(jìn)行日志記錄。*屬性可以一起使用:

logging.file.name logging.file.path Example Description

(none)

(none)

Console only logging.

Specific file

(none)

my.log

Writes to the specified log file. Names can be an exact location or relative to the current directory.

(none)

Specific directory

/var/log

Writes?spring.log?to the specified directory. Names can be an exact location or relative to the current directory.

日志文件在達(dá)到10 MB時(shí)輪換,并且與控制臺(tái)輸出一樣,默認(rèn)情況下記錄錯(cuò)誤級(jí)別、警告級(jí)別和info級(jí)別的消息。

日志記錄屬性獨(dú)立于實(shí)際的日志記錄基礎(chǔ)設(shè)施。因此,特定的配置鍵(如logback。配置文件Logback)不是由spring Boot管理的。

4.4. File Rotation

如果您正在使用Logback,則可以使用您的應(yīng)用程序?qū)θ罩据啌Q設(shè)置進(jìn)行微調(diào)。屬性或應(yīng)用程序。yaml文件。對(duì)于所有其他日志系統(tǒng),您需要自己直接配置旋轉(zhuǎn)設(shè)置(例如,如果您使用Log4J2,那么您可以添加一個(gè)Log4J2 .xml或Log4J2 -spring.xml文件)。
支持以下旋轉(zhuǎn)策略屬性:

Name Description

logging.logback.rollingpolicy.file-name-pattern

The filename pattern used to create log archives.

logging.logback.rollingpolicy.clean-history-on-start

If log archive cleanup should occur when the application starts.

logging.logback.rollingpolicy.max-file-size

The maximum size of log file before it is archived.

logging.logback.rollingpolicy.total-size-cap

The maximum amount of size log archives can take before being deleted.

logging.logback.rollingpolicy.max-history

The maximum number of archive log files to keep (defaults to 7).

4.5. Log Levels

所有支持的日志系統(tǒng)都可以通過使用logging.level在Spring環(huán)境中(例如,在application.properties中)設(shè)置日志記錄器級(jí)別。<logger-name>=<level>,其中l(wèi)evel是TRACE、DEBUG、INFO、WARN、ERROR、FATAL或OFF中的一個(gè)。可以使用logging.level.root配置根記錄器。

下面的例子顯示了application.properties中可能的日志設(shè)置:

logging.level.root=warn
logging.level.org.springframework.web=debug
logging.level.org.hibernate=error

也可以使用環(huán)境變量設(shè)置日志記錄級(jí)別。例如,LOGGING_LEVEL_ORG_SPRINGFRAMEWORK_WEB=DEBUG將org.springframework.web設(shè)置為DEBUG。

4.6. Log Groups

能夠?qū)⑾嚓P(guān)的記錄器分組在一起,以便可以同時(shí)配置它們,這通常是很有用的。例如,您可能經(jīng)常更改所有與Tomcat相關(guān)的日志記錄器的日志級(jí)別,但是您不容易記住頂級(jí)包。
為了幫助實(shí)現(xiàn)這一點(diǎn),Spring Boot允許您在Spring環(huán)境中定義日志組。例如,下面是你如何通過將“tomcat”組添加到application.properties中來定義它:

logging.group.tomcat=org.apache.catalina,org.apache.coyote,org.apache.tomcat

一旦定義,你可以用一行改變組中所有記錄器的級(jí)別:
PropertiesYaml

logging.level.tomcat=trace

SpringCore完整學(xué)習(xí)教程4,入門級(jí)別,學(xué)習(xí),spring boot,springboot,spring,java,log

Spring Boot包括以下可以開箱即用的預(yù)定義日志組:

Name Loggers

web

org.springframework.core.codec,?org.springframework.http,?org.springframework.web,?org.springframework.boot.actuate.endpoint.web,?org.springframework.boot.web.servlet.ServletContextInitializerBeans

sql

org.springframework.jdbc.core,?org.hibernate.SQL,?org.jooq.tools.LoggerListener

4.7. Using a Log Shutdown Hook

為了在應(yīng)用程序終止時(shí)釋放日志資源,提供了一個(gè)關(guān)機(jī)鉤子,該鉤子將在JVM退出時(shí)觸發(fā)日志系統(tǒng)清理。這個(gè)關(guān)閉鉤子是自動(dòng)注冊(cè)的,除非您的應(yīng)用程序作為war文件部署。如果您的應(yīng)用程序具有復(fù)雜的上下文層次結(jié)構(gòu),那么shutdown鉤子可能無法滿足您的需求。如果沒有,禁用shutdown鉤子,并研究底層日志系統(tǒng)直接提供的選項(xiàng)。例如,Logback提供上下文選擇器,允許在自己的上下文中創(chuàng)建每個(gè)Logger。您可以使用日志記錄。

logging.register-shutdown-hook=false

4.8. Custom Log Configuration

可以通過在類路徑中包含適當(dāng)?shù)膸?kù)來激活各種日志記錄系統(tǒng),還可以通過在類路徑的根目錄或由以下Spring Environment屬性指定的位置提供合適的配置文件來進(jìn)一步定制日志記錄系統(tǒng):logging.config。
你可以通過使用org.springframework.boot.logging.LoggingSystem系統(tǒng)屬性強(qiáng)制Spring Boot使用特定的日志系統(tǒng)。該值應(yīng)該是LoggingSystem實(shí)現(xiàn)的完全限定類名。您還可以通過使用一個(gè)值完全禁用Spring Boot的日志配置

因?yàn)槿罩居涗浭窃贏pplicationContext創(chuàng)建之前初始化的,所以不可能從Spring @Configuration文件中的@PropertySources控制日志記錄。更改日志系統(tǒng)或完全禁用它的唯一方法是通過系統(tǒng)屬性。

根據(jù)您的日志系統(tǒng),將加載以下文件:

Logging System Customization

Logback

logback-spring.xml,?logback-spring.groovy,?logback.xml, or?logback.groovy

Log4j2

log4j2-spring.xml?or?log4j2.xml

JDK (Java Util Logging)

logging.properties

如果可能,我們建議您在日志配置中使用-spring變量(例如,logback-spring.xml而不是logback.xml)。如果使用標(biāo)準(zhǔn)配置位置,Spring不能完全控制日志初始化。

Java Util Logging有一些已知的類加載問題,在從“可執(zhí)行jar”運(yùn)行時(shí)會(huì)導(dǎo)致問題。如果可能的話,我們建議您在從“可執(zhí)行jar”運(yùn)行時(shí)避免使用它。

為了幫助進(jìn)行定制,將一些其他屬性從Spring環(huán)境轉(zhuǎn)移到System屬性。這允許記錄系統(tǒng)配置使用屬性。例如,在應(yīng)用程序中設(shè)置logging.file.name。屬性或LOGGING_FILE_NAME作為環(huán)境變量將導(dǎo)致設(shè)置LOG_FILE System屬性。傳輸?shù)膶傩匀缦卤硭?

Spring Environment System Property Comments

logging.exception-conversion-word

LOG_EXCEPTION_CONVERSION_WORD

The conversion word used when logging exceptions.

logging.file.name

LOG_FILE

If defined, it is used in the default log configuration.

logging.file.path

LOG_PATH

If defined, it is used in the default log configuration.

logging.pattern.console

CONSOLE_LOG_PATTERN

The log pattern to use on the console (stdout).

logging.pattern.dateformat

LOG_DATEFORMAT_PATTERN

Appender pattern for log date format.

logging.charset.console

CONSOLE_LOG_CHARSET

The charset to use for console logging.

logging.pattern.file

FILE_LOG_PATTERN

The log pattern to use in a file (if?LOG_FILE?is enabled).

logging.charset.file

FILE_LOG_CHARSET

The charset to use for file logging (if?LOG_FILE?is enabled).

logging.pattern.level

LOG_LEVEL_PATTERN

The format to use when rendering the log level (default?%5p).

PID

PID

The current process ID (discovered if possible and when not already defined as an OS environment variable).

如果使用Logback,還會(huì)傳輸以下屬性:

Spring Environment System Property Comments

logging.logback.rollingpolicy.file-name-pattern

LOGBACK_ROLLINGPOLICY_FILE_NAME_PATTERN

Pattern for rolled-over log file names (default?${LOG_FILE}.%d{yyyy-MM-dd}.%i.gz).

logging.logback.rollingpolicy.clean-history-on-start

LOGBACK_ROLLINGPOLICY_CLEAN_HISTORY_ON_START

Whether to clean the archive log files on startup.

logging.logback.rollingpolicy.max-file-size

LOGBACK_ROLLINGPOLICY_MAX_FILE_SIZE

Maximum log file size.

logging.logback.rollingpolicy.total-size-cap

LOGBACK_ROLLINGPOLICY_TOTAL_SIZE_CAP

Total size of log backups to be kept.

logging.logback.rollingpolicy.max-history

LOGBACK_ROLLINGPOLICY_MAX_HISTORY

Maximum number of archive log files to keep.

所有支持的日志系統(tǒng)在解析配置文件時(shí)都可以參考System屬性。參見spring-boot.jar中的默認(rèn)配置示例:

  • Logback

  • Log4j 2

  • Java Util logging

如果你想在日志屬性中使用占位符,你應(yīng)該使用Spring Boot的語(yǔ)法,而不是底層框架的語(yǔ)法。值得注意的是,如果使用Logback,應(yīng)該使用:作為屬性名與其默認(rèn)值之間的分隔符,而不是使用:-。
您可以通過僅覆蓋LOG_LEVEL_PATTERN(或使用Logback覆蓋logging.pattern.level)將MDC和其他特別內(nèi)容添加到日志行。例如,如果您使用logging.pattern。level=user:%X{user} %5p,則默認(rèn)日志格式中包含“user”的MDC條目,如果存在,如下例所示。

2019-08-30 12:30:04.031 user:someone INFO 22174 --- [  nio-8080-exec-0] demo.Controller
Handling authenticated request

4.9. Logback Extensions

Spring Boot包括許多Logback擴(kuò)展,可以幫助進(jìn)行高級(jí)配置。您可以在logback-spring.xml配置文件中使用這些擴(kuò)展名。

因?yàn)闃?biāo)準(zhǔn)的logback.xml配置文件加載得太早,所以不能在其中使用擴(kuò)展。您需要使用logback-spring.xml或定義一個(gè)日志記錄。配置屬性。

擴(kuò)展不能與Logback的配置掃描一起使用。如果您嘗試這樣做,對(duì)配置文件進(jìn)行更改會(huì)導(dǎo)致類似于以下錯(cuò)誤之一的錯(cuò)誤記錄:

ERROR in ch.qos.logback.core.joran.spi.Interpreter@4:71 - no applicable action for [springProperty], current ElementPath is [[configuration][springProperty]]
ERROR in ch.qos.logback.core.joran.spi.Interpreter@4:71 - no applicable action for [springProfile], current ElementPath is [[configuration][springProfile]]
4.9.1. Profile-specific Configuration

<springProfile>標(biāo)簽允許您選擇性地包含或排除基于活動(dòng)Spring配置文件的配置部分。在<configuration>元素中的任何地方都支持配置文件節(jié)。使用name屬性指定哪個(gè)概要文件接受配置。<springProfile>標(biāo)記可以包含一個(gè)概要名稱(例如staging)或一個(gè)概要表達(dá)式。概要表達(dá)式允許表達(dá)更復(fù)雜的概要邏輯,例如production & (eu-central | eu-west)。查看參考指南了解更多細(xì)節(jié)。下面的清單顯示了三個(gè)樣例配置文件:

<springProfile name="staging">
    <!-- configuration to be enabled when the "staging" profile is active -->
</springProfile>

<springProfile name="dev | staging">
    <!-- configuration to be enabled when the "dev" or "staging" profiles are active -->
</springProfile>

<springProfile name="!production">
    <!-- configuration to be enabled when the "production" profile is not active -->
</springProfile>
4.9.2. Environment Properties

<springProperty>標(biāo)記允許您公開Spring環(huán)境中的屬性,以便在Logback中使用。如果希望訪問應(yīng)用程序中的值,這樣做可能很有用。屬性文件中的Logback配置。該標(biāo)記的工作方式類似于Logback的標(biāo)準(zhǔn)<property>標(biāo)記。但是,不是直接指定值,而是指定屬性的來源(來自環(huán)境)。如果需要將屬性存儲(chǔ)在局部作用域以外的地方,可以使用scope屬性。如果需要一個(gè)回退值(如果沒有在環(huán)境中設(shè)置屬性),可以這樣做。

<springProperty scope="context" name="fluentHost" source="myapp.fluentd.host"
        defaultValue="localhost"/>
<appender name="FLUENT" class="ch.qos.logback.more.appenders.DataFluentAppender">
    <remoteHost>${fluentHost}</remoteHost>
    ...
</appender>

源必須以kebab的形式指定(例如my.property-name)。但是,可以通過使用寬松的規(guī)則將屬性添加到環(huán)境中。文章來源地址http://www.zghlxwxcb.cn/news/detail-718455.html

到了這里,關(guān)于SpringCore完整學(xué)習(xí)教程4,入門級(jí)別的文章就介紹完了。如果您還想了解更多內(nèi)容,請(qǐng)?jiān)谟疑辖撬阉鱐OY模板網(wǎng)以前的文章或繼續(xù)瀏覽下面的相關(guān)文章,希望大家以后多多支持TOY模板網(wǎng)!

本文來自互聯(lián)網(wǎng)用戶投稿,該文觀點(diǎn)僅代表作者本人,不代表本站立場(chǎng)。本站僅提供信息存儲(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)文章

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

支付寶掃一掃打賞

博客贊助

微信掃一掃打賞

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

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

二維碼1

領(lǐng)取紅包

二維碼2

領(lǐng)紅包