日本综合一区二区|亚洲中文天堂综合|日韩欧美自拍一区|男女精品天堂一区|欧美自拍第6页亚洲成人精品一区|亚洲黄色天堂一区二区成人|超碰91偷拍第一页|日韩av夜夜嗨中文字幕|久久蜜综合视频官网|精美人妻一区二区三区

RELATEED CONSULTING
相關(guān)咨詢
選擇下列產(chǎn)品馬上在線溝通
服務時間:8:30-17:00
你可能遇到了下面的問題
關(guān)閉右側(cè)工具欄

新聞中心

這里有您想知道的互聯(lián)網(wǎng)營銷解決方案
Springboot這些強大的日志功能,你使用過嗎?

日志配置詳解

Spring Boot使用Commons Logging記錄所有內(nèi)部日志,但保留底層日志實現(xiàn)的打開狀態(tài)。為JUL日志記錄、Log4J2和Logback提供了默認配置。在每種情況下,記錄器都預先配置為使用控制臺輸出,還可以使用可選的文件輸出。

創(chuàng)新互聯(lián)-專業(yè)網(wǎng)站定制、快速模板網(wǎng)站建設、高性價比壽縣網(wǎng)站開發(fā)、企業(yè)建站全套包干低至880元,成熟完善的模板庫,直接使用。一站式壽縣網(wǎng)站制作公司更省心,省錢,快速模板網(wǎng)站建設找我們,業(yè)務覆蓋壽縣地區(qū)。費用合理售后完善,10年實體公司更值得信賴。

默認情況下,如果使用 “Starters”,則使用Logback進行日志記錄。還包括適當?shù)腖ogback路由,以確保使用JUL日志、Commons Logging、Log4J或SLF4J的依賴庫都能正常工作。

Java有很多可用的日志框架。如果上面的列表令人困惑,請不要擔心。通常,您不需要更改日志依賴項,Spring Boot默認值也可以正常工作。

1.1 日志格式

Spring Boot的默認日志輸出類似于以下示例:

2019-03-05 10:57:51.112  INFO 45469 --- [           main] org.apache.catalina.core.StandardEngine  : Starting Servlet Engine: Apache Tomcat/7.0.52
2019-03-05 10:57:51.253  INFO 45469 --- [ost-startStop-1] o.a.c.c.C.[Tomcat].[localhost].[/]       : Initializing Spring embedded WebApplicationContext
2019-03-05 10:57:51.253  INFO 45469 --- [ost-startStop-1] o.s.web.context.ContextLoader            : Root WebApplicationContext: initialization completed in 1358 ms
2019-03-05 10:57:51.698  INFO 45469 --- [ost-startStop-1] o.s.b.c.e.ServletRegistrationBean        : Mapping servlet: 'dispatcherServlet' to [/]
2019-03-05 10:57:51.702  INFO 45469 --- [ost-startStop-1] o.s.b.c.embedded.FilterRegistrationBean  : Mapping filter: 'hiddenHttpMethodFilter' to: [/*]輸出以下項目:

日期和時間:毫秒精度,易于排序。

日志級別:ERROR, WARN, INFO, DEBUG, or TRACE (錯誤、警告、信息、調(diào)試或跟蹤) 。

進程ID。

一個---分隔符,用于區(qū)分實際日志消息的開始。

線程名稱:用方括號括起來(控制臺輸出可能會截斷)。

記錄器名稱:這通常是源類名稱(通??s寫)。

日志消息。

1.2 控制臺輸出

默認日志配置在寫入消息時將消息回顯到控制臺。默認情況下,會記錄錯誤級別error、警告級別warn和信息級別info的消息。你還可以通過使用--debug標志啟動應用程序來啟用“debug”模式。

$ java -jar myapp.jar --debug

你還可以在application.properties中指定debug=true。

啟用debug模式時,將配置一組核心記錄器(嵌入式容器、Hibernate和Spring Boot)以輸出更多信息。啟用debug模式不會將應用程序配置為使用debug級別記錄所有消息。或者,你可以通過使用--trace標志(或application.properties中的trace=true)啟動應用程序來啟用“trace”模式。這樣做可以為一系列核心記錄器(嵌入式容器、Hibernate模式生成和整個Spring產(chǎn)品組合)啟用跟蹤日志記錄。

1.3 彩色輸出日志

如果終端支持ANSI,則顏色輸出用于幫助可讀性。可以將spring.output.ansi.enabled設置為支持的值以覆蓋自動檢測。

使用%clr轉(zhuǎn)換字配置顏色編碼。在最簡單的形式中,轉(zhuǎn)換器根據(jù)日志級別為輸出著色,如下例所示:

%clr(%5p)

下表描述了日志級別到顏色的映射:

Level

Color

FATAL

Red

ERROR

Red

WARN

Yellow

INFO

Green

DEBUG

Green

TRACE

Green

或者,您可以通過將顏色或樣式作為轉(zhuǎn)換選項來指定應使用的顏色或樣式。例如,要使文本變?yōu)辄S色,請使用以下設置:

%clr(%d{yyyy-MM-dd HH:mm:ss.SSS}){yellow}

支持以下顏色和樣式:

  • blue
  • cyan
  • faint
  • green
  • magenta
  • red
  • yellow

具體顏色的配置可以在logback.xml或logback-spring.xml中配置,也可以在application.properties中配置

logging:
  pattern:
    console: '%clr(%d{${LOG_DATEFORMAT_PATTERN:-yyyy-MM-dd HH:mm:ss.SSS}}){Green} %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}'

logback-spring.xml文件配置


   
       %yellow(%date{yyyy-MM-dd HH:mm:ss}) |%highlight(%-5level) |%green(%logger:%line) |%black(%msg%n)
       UTF-8
   

1.4 日志輸出文件

默認情況下,Spring Boot只將日志記錄到控制臺,不寫入日志文件。如果要在控制臺輸出之外寫入日志文件,則需要設置logging.file.name或logging.file.path屬性(例如,在application.properties中)。

下表顯示了如何將logging.*屬性一起使用:

logging.file.name

logging.file.path

Example

Description

(none)

(none)

僅輸出到控制臺

Specific file

(none)

my.log

寫入指定的日志文件。名稱可以是精確的位置,也可以是相對于當前目錄的。

(none)

Specific directory

/var/log

將'spring.log'寫入指定目錄。名稱可以是精確的位置,也可以是相對于當前目錄的。

日志文件在達到10 MB時會旋轉(zhuǎn),并且與控制臺輸出一樣,默認情況下會記錄錯誤級別、警告級別和信息級別的消息。

注意:logging.file.name與logging.file.path 不能同時出現(xiàn)

示例:

logging:
  level:
    com.pack: info
    web: trace
  file:
    name: d:/logs/l.log

1.5 日志文件轉(zhuǎn)動/交替

如果使用的是Logback,則可以使用application.properties或application.yaml文件微調(diào)日志轉(zhuǎn)動/交替設置。對于所有其他日志系統(tǒng),你需要自己直接配置轉(zhuǎn)動/交替設置(例如,如果使用Log4J2,則可以添加log4j.xml文件)。

支持以下輪換策略屬性:

Name

Description

logging.logback.rollingpolicy.file-name-pattern

用于創(chuàng)建日志存檔的文件名模式。

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

如果在應用程序啟動時應進行日志歸檔清理。

logging.logback.rollingpolicy.max-file-size

歸檔前日志文件的最大大小。

logging.logback.rollingpolicy.total-size-cap

刪除日志存檔文件之前可以接受的最大大小。

logging.logback.rollingpolicy.max-history

保留日志存檔的天數(shù)(默認為7)

如下:

logging:
  logback:
    rollingpolicy:
      max-file-size: 2KB

控制日志文件大小,不超過2KB,超過的自動歸檔(生成壓縮包)

1.6 日志級別

所有受支持的日志記錄系統(tǒng)都可以通過使用logging.level.=在Spring環(huán)境中設置記錄器級別(例如,在application.properties中),其中級別是跟蹤trace、調(diào)試debug、信息info、警告warn、錯誤error、致命fatal或關(guān)閉off之一??梢允褂胠ogging.level.root配置根日志記錄器。

以下示例顯示application.properties中的可能的日志記錄設置:

logging:
  level:
    root: "warn"
    org.springframework.web: "debug"
    org.hibernate: "error"
    com.pack: "error"

還可以使用環(huán)境變量設置日志記錄級別。例如,日志記錄_LEVEL_ORG_SPRINGFRAMEWORK_WEB=DEBUG將ORG.SPRINGFRAMEWORK.WEB設置為DEBUG。

1.7 日志分組

能夠?qū)⑾嚓P(guān)的記錄器分組在一起通常很有用,這樣就可以同時對它們進行配置。例如,你可能通常會更改所有Tomcat相關(guān)記錄器的日志記錄級別,但你無法輕松記住頂級軟件包。為了幫助實現(xiàn)這一點,SpringBoot允許你在Spring環(huán)境中定義日志記錄組。例如,你可以通過將“tomcat”組添加到application.properties來定義它:

logging:
  group:
    tomcat: "org.apache.catalina,org.apache.coyote,org.apache.tomcat" #這里如果配置了會報錯,應該還需要配置什么吧。

通過上面的定義后,你可以使用一行更改組中所有記錄器的級別:

logging:
  level:
    tomcat: "trace"

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

Name

Loggers

web

org.springframework.core.codecorg.springframework.httporg.springframework.weborg.springframework.boot.actuate.endpoint.weborg.springframework.boot.web.servlet.ServletContextInitializerBeans

sql

org.springframework.jdbc.coreorg.hibernate.SQLorg.jooq.tools.LoggerListener

這兩個非常有用。

1.8 自定義日志配置

可以通過在類路徑上包含適當?shù)膸靵砑せ罡鞣N日志記錄系統(tǒng),還可以通過在類路徑的根目錄中或以下Spring環(huán)境屬性指定的位置提供適當?shù)呐渲梦募磉M一步定制:logging.config。

通過使用org.springframework.Boot.logging.LoggingSystem屬性,可以強制Spring引導使用特定的日志系統(tǒng)。該值應該是LoggingSystem實現(xiàn)的完全限定類名。您還可以使用none值完全禁用Spring Boot的日志記錄配置。

由于日志記錄是在創(chuàng)建ApplicationContext之前初始化的,因此無法從Spring的@Configuration文件中的@PropertySources控制日志記錄。更改或完全禁用日志系統(tǒng)的唯一方法是通過系統(tǒng)屬性。

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

日志系統(tǒng)

定制

Logback

logback-spring.xmllogback-spring.groovylogback.xml, or logback.groovy

Log4j2

log4j2-spring.xml or log4j2.xml

JDK (Java Util Logging)

logging.properties

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

為了幫助進行自定義,其他一些屬性將從Spring環(huán)境傳輸?shù)较到y(tǒng)屬性,如下表所述:

Spring Environment

System Property

Comments

logging.exception-conversion-word

LOG_EXCEPTION_CONVERSION_WORD

記錄異常時使用的轉(zhuǎn)換字。

logging.file.name

LOG_FILE

如果已定義,則在默認日志配置中使用。

logging.file.path

LOG_PATH

如果已定義,則在默認日志配置中使用。

logging.pattern.console

CONSOLE_LOG_PATTERN

要在控制臺(stdout)上使用的日志模式。

logging.pattern.dateformat

LOG_DATEFORMAT_PATTERN

日志日期格式的追加器模式。

logging.charset.console

CONSOLE_LOG_CHARSET

用于控制臺日志記錄的字符集。

logging.pattern.file

FILE_LOG_PATTERN

要在文件中使用的日志模式(如果啟用了“日志文件”)。

logging.charset.file

FILE_LOG_CHARSET

用于文件記錄的字符集(如果啟用了LOG_FILE)。

logging.pattern.level

LOG_LEVEL_PATTERN

呈現(xiàn)日志級別時要使用的格式(默認為%5p)。

PID

PID

當前進程ID(如果可能,在尚未定義為OS環(huán)境變量時發(fā)現(xiàn))。

上面這些屬性(System Property)我們可以在logback-spring.xml文件中直接引用,如下:


   
       [${PID}] - [${LOG_FILE}] - [${LOG_LEVEL_PATTERN}] %yellow(%date{yyyy-MM-dd HH:mm:ss}) |%highlight(%-6level) |%green(%logger:%line) |%black(%msg%n)
       UTF-8
   

配置logging.pattern.level 屬性

logging:
  pattern:
    level: INFO

輸出:

[13036] - [d:/logs/l.log] - [INFO] ?[33m2021-09-23 14:34:02?[0;39m |?[34mINFO  ?[0;39m

如果使用的是Logback,則還會傳輸以下屬性:

Spring Environment

System Property

Comments

logging.logback.rollingpolicy.file-name-pattern

LOGBACK_ROLLINGPOLICY_FILE_NAME_PATTERN

滾動日志文件名的模式 (default ${LOG_FILE}.%d{yyyy-MM-dd}.%i.gz).

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

`LOGBACK_ROLLINGPOLICY_CLEAN_HISTORY_ON_START

是否在啟動時清理歸檔日志文件。

logging.logback.rollingpolicy.max-file-size

LOGBACK_ROLLINGPOLICY_MAX_FILE_SIZE

最大日志文件大小。

logging.logback.rollingpolicy.total-size-cap

LOGBACK_ROLLINGPOLICY_TOTAL_SIZE_CAP

要保留的日志備份的總大小。

logging.logback.rollingpolicy.max-history

`LOGBACK_ROLLINGPOLICY_MAX_HISTORY

要保留的最大歸檔日志文件數(shù)。

所有受支持的日志系統(tǒng)在解析其配置文件時都可以查閱系統(tǒng)屬性。有關(guān)示例,請參閱spring-boot.jar中的默認配置:

  • Logback
  • Log4j 2
  • Java Util logging

1.9 Logback擴展

Spring Boot包括許多對Logback的擴展,這些擴展可以幫助進行高級配置。你可以在logback-spring.xml配置文件中使用這些擴展名。

因為標準logback.xml配置文件加載得太早,所以不能在其中使用擴展名。您需要使用logback-spring.xml或定義logging.config屬性。

1.9.1 配置文件特定配置

標記允許你根據(jù)活動的Spring配置文件選擇性地包括或排除配置部分。配置文件部分在元素中的任何位置都受支持。使用name屬性指定接受配置的配置文件。標記可以包含配置文件名稱(例如staging)或配置文件表達式。配置文件表達式允許表達更復雜的配置文件邏輯,例如生產(chǎn) 和(central | west)。有關(guān)更多詳細信息,請參閱參考指南。以下列表顯示了三個示例配置文件:


   




   




   

1.9.2 環(huán)境屬性

標記允許你公開Spring環(huán)境中的屬性,以便在Logback中使用。如果你想從Logback配置中的application.properties文件中訪問值,那么這樣做很有用。該標記的工作方式與Logback的標準標記類似。但是,你可以指定屬性的源(來自環(huán)境),而不是指定直接值。如果需要將屬性存儲在本地范圍以外的其他位置,可以使用scope屬性。如果需要回退值(在環(huán)境中未設置屬性的情況下),可以使用defaultValue屬性。以下示例顯示了如何公開在Logback中使用的屬性:

示例:



   ${fluentHost}
  ...

配置文件配置自定義屬性:

custom:
  props:
    host: 127.0.0.1

日志文件定義(logback-spring.xml):

日志文件中使用


    
        [${host}] - [${PID}] - [${LOG_FILE}] - [${LOG_LEVEL_PATTERN}] %yellow(%date{yyyy-MM-dd HH:mm:ss}) |%highlight(%-6level) |%green(%logger:%line) |%black(%msg%n)
        UTF-8
    

測試輸出:

[127.0.0.1] - [23188] - [d:/logs/l.log] - [INFO] ?[33m2021-09-23 14:46:46?[0;39m

本文標題:Springboot這些強大的日志功能,你使用過嗎?
URL網(wǎng)址:http://www.dlmjj.cn/article/djssdid.html