成人免费xxxxx在线视频软件_久久精品久久久_亚洲国产精品久久久_天天色天天色_亚洲人成一区_欧美一级欧美三级在线观看

Springboot這些強(qiáng)大的日志功能,你使用過嗎?

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

日志配置詳解

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

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

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

1.1 日志格式

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

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: [/*]輸出以下項(xiàng)目:

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

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

進(jìn)程ID。

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

線程名稱:用方括號括起來(控制臺輸出可能會截?cái)啵?/p>

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

日志消息。

1.2 控制臺輸出

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

$ java -jar myapp.jar --debug

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

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

1.3 彩色輸出日志

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

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

%clr(%5p)

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

Level

Color

FATAL

Red

ERROR

Red

WARN

Yellow

INFO

Green

DEBUG

Green

TRACE

Green

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

%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文件配置

<appender name="CONSOLE" class="ch.qos.logback.core.ConsoleAppender">
   <encoder>
       <pattern>%yellow(%date{yyyy-MM-dd HH:mm:ss}) |%highlight(%-5level) |%green(%logger:%line) |%black(%msg%n)</pattern>
       <charset>UTF-8</charset>
   </encoder>
</appender>

1.4 日志輸出文件

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

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

logging.file.name

logging.file.path

Example

Description

(none)

(none)


僅輸出到控制臺

Specific file

(none)

my.log

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

(none)

Specific directory

/var/log

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

日志文件在達(dá)到10 MB時會旋轉(zhuǎn),并且與控制臺輸出一樣,默認(rè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)動/交替設(shè)置。對于所有其他日志系統(tǒng),你需要自己直接配置轉(zhuǎn)動/交替設(shè)置(例如,如果使用Log4J2,則可以添加log4j.xml文件)。

支持以下輪換策略屬性:

Name

Description

logging.logback.rollingpolicy.file-name-pattern

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

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

如果在應(yīng)用程序啟動時應(yīng)進(jìn)行日志歸檔清理。

logging.logback.rollingpolicy.max-file-size

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

logging.logback.rollingpolicy.total-size-cap

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

logging.logback.rollingpolicy.max-history

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

如下:

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

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

1.6 日志級別

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

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

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

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

1.7 日志分組

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

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

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

logging:
  level:
    tomcat: "trace"

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

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 自定義日志配置

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

通過使用org.springframework.Boot.logging.LoggingSystem屬性,可以強(qiáng)制Spring引導(dǎo)使用特定的日志系統(tǒng)。該值應(yīng)該是LoggingSystem實(shí)現(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)。如果使用標(biāo)準(zhǔn)配置位置,Spring無法完全控制日志初始化。

為了幫助進(jìn)行自定義,其他一些屬性將從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

如果已定義,則在默認(rèn)日志配置中使用。

logging.file.path

LOG_PATH

如果已定義,則在默認(rèn)日志配置中使用。

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)日志級別時要使用的格式(默認(rèn)為%5p)。

PID

PID

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

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

<appender name="CONSOLE" class="ch.qos.logback.core.ConsoleAppender">
   <encoder>
       <pattern>[${PID}] - [${LOG_FILE}] - [${LOG_LEVEL_PATTERN}] %yellow(%date{yyyy-MM-dd HH:mm:ss}) |%highlight(%-6level) |%green(%logger:%line) |%black(%msg%n)</pattern>
       <charset>UTF-8</charset>
   </encoder>
</appender>

配置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中的默認(rèn)配置:

  • Logback
  • Log4j 2
  • Java Util logging

1.9 Logback擴(kuò)展

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

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

1.9.1 配置文件特定配置

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

<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>

1.9.2 環(huán)境屬性

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

示例:

<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>

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

custom:
  props:
    host: 127.0.0.1

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

<springProperty scope="context" name="host" source="custom.props.host" defaultValue="localhost"/>

日志文件中使用

<appender name="CONSOLE" class="ch.qos.logback.core.ConsoleAppender">
    <encoder>
        <pattern>[${host}] - [${PID}] - [${LOG_FILE}] - [${LOG_LEVEL_PATTERN}] %yellow(%date{yyyy-MM-dd HH:mm:ss}) |%highlight(%-6level) |%green(%logger:%line) |%black(%msg%n)</pattern>
        <charset>UTF-8</charset>
    </encoder>
</appende>

測試輸出:

[127.0.0.1] - [23188] - [d:/logs/l.log] - [INFO] ?[33m2021-09-23 14:46:46?[0;39m
責(zé)任編輯:武曉燕 來源: Spring全家桶實(shí)戰(zhàn)案例源碼
相關(guān)推薦

2019-03-18 15:56:56

IntelAMDCPU

2023-11-22 07:42:01

2023-01-28 09:38:48

接口SpringMVC

2022-03-18 08:00:48

Chrome工具前端

2024-03-21 10:39:24

CIOAI

2024-07-02 11:06:37

SpringBoot項(xiàng)目

2021-04-05 22:33:24

Windows 10Windows微軟

2021-10-21 08:13:11

Springboot

2020-09-21 14:55:15

數(shù)據(jù)庫SQL技術(shù)

2021-05-21 13:36:46

iOSiPhone功能

2024-03-26 10:10:45

JavaScript操作符操作表達(dá)式

2019-05-22 10:25:50

人工智能AI

2021-05-31 05:12:11

Edge微軟瀏覽器

2022-09-07 09:01:14

JS操作符運(yùn)算符

2021-03-20 07:20:49

Windows10操作系統(tǒng)微軟

2022-05-05 07:25:03

Supervisor監(jiān)控Python

2025-01-28 00:00:00

OpenFeign接口依賴

2021-09-27 13:02:10

Linux工具命令

2014-04-09 09:12:08

2019-08-27 15:12:12

Linux操作系統(tǒng)Windows
點(diǎn)贊
收藏

51CTO技術(shù)棧公眾號

主站蜘蛛池模板: 日韩欧美在线免费观看视频 | 日韩av手机在线观看 | 日韩av手机在线观看 | 国产精品视频一二三区 | 99国产精品久久久 | 影音先锋成人资源 | 亚洲一区网站 | 日韩综合一区 | 综合在线视频 | 午夜免费| 美女激情av | 日韩在线视频一区二区三区 | 国产成人免费视频网站视频社区 | 日本一区二区视频 | 91美女在线观看 | 亚洲欧美综合精品久久成人 | 亚洲视频精品 | 精品久久久久久一区二区 | 在线午夜 | 欧美一级欧美一级在线播放 | 国产在线精品一区二区三区 | a在线观看 | 天天干天天插天天 | 国产精品久久亚洲7777 | 日本中文字幕视频 | 亚洲久久一区 | 免费看色 | 国产伦精品一区二区三区精品视频 | 久久99精品国产自在现线小黄鸭 | www.99热| 日本a级大片 | 日韩伦理电影免费在线观看 | 成人三级av| 国产伦精品一区二区三区视频金莲 | 中文字幕精品一区二区三区精品 | 一级看片 | 国产精品99久久免费观看 | 国产传媒在线播放 | 亚洲精品久久久久久宅男 | 国产午夜在线观看 | 国产在视频一区二区三区吞精 |