多多色-多人伦交性欧美在线观看-多人伦精品一区二区三区视频-多色视频-免费黄色视屏网站-免费黄色在线

國內最全IT社區平臺 聯系我們 | 收藏本站
阿里云優惠2
您當前位置:首頁 > php框架 > 框架設計 > Spring Boot 2.0.0參考手冊_中文版_Part IV_26

Spring Boot 2.0.0參考手冊_中文版_Part IV_26

來源:程序員人生   發布時間:2017-02-24 11:17:26 閱讀次數:3298次

文章作者:Tyan
博客:noahsnail.com  |  CSDN  |  簡書

26. Logging

Spring Boot所有的內部日志都采取Commons Logging,但開放了底層的日志實現。提供了對Java Util Logging,Log4J2和Logback的默許實現。在每一個logger中都預先配置使用控制臺作為輸出,同時也可用可選的文件輸出。

默許情況下,如果使用Starters,Logback將作為日志。也要包括恰當的Logback規則來保證依賴庫使用Java Util Logging,Commons Logging,Log4J或SLF4J都能正確工作。

在Java中有許多日志框架可用。沒必要擔心上面的列表看起來有點混亂。通常情況下你不需要改變你的日志依賴,Spring Boot默許情況下能很好的工作。

26.1 Log格式

Spring Boot默許的日志輸出看起來以下:

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

下面的是輸出項:

  • Date and Time?—?精確到毫秒且容易排序。

  • Log級別?—?ERROR,WARN,INFO,DEBUG或TRACE。

  • 進程ID。

  • ---分隔符來辨別真實的日志信息的開始。

  • 線程名稱?—?用方括號包裹(在控制臺輸出中常常是縮減的)。

  • Logger名稱?—?源類名(常常是簡寫)。

  • 日志信息。

Logback沒有FATAL級別(它映照到ERROR)。

26.2 控制臺輸出

默許的日志配置會將信息輸出到控制臺。默許情況下會輸出ERRORWARNINFO級別的信息。你也能夠通過--debug來啟動你的利用,從而啟用“debug”模式。

$ java -jar myapp.jar --debug

你也能夠在application.properties指定debug=true

當啟用調試模式時,配置選擇的核心logger(嵌入式容器,Hibernate和Spring Boot)來輸出更多的信息。啟動調試模式不會將你的利用配置成輸出所有DEBUG級別的信息。

或,你可以用--trace標記(或在application.properties中添加trace=true)啟動你的利用,從而啟用“trace”模式。這將在選擇的核心logger中(嵌入式容器,Hibernate模式生成和全部Spring文件夾)啟用trace日志。

26.2.1 色彩編碼輸出

如果你的終端支持ANSI,色彩輸出可以用來輔助瀏覽。你可以為spring.output.ansi.enabled設置1個支持值來覆蓋自動檢測。

色彩編碼用%clr轉換詞來配置。最簡單的情勢是根據日志級別進行色彩輸出,例如:

%clr(%5p)

日志級別與色彩的映照以下:

Level Color
FATAL Red
ERROR Red
WARN Yellow
INFO Green
DEBUG Green
TRACE Green

或,你可以通過在轉換器中提供選項來指定應當試用的色彩或風格。例如,為了使文本顯示黃色:

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

支持下面的色彩和風格:

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

26.3 文件輸出

默許情況下,Spring Boot只能輸出日志到控制臺,不會寫入日志文件。如果你想除控制臺以外還想寫日志文件,你需要設置logging.filelogging.path屬性(例如,在你的application.properties)。

下表顯示了logging.*屬性怎樣在1起使用:

表 26.1. Logging屬性

logging.file logging.path Example Description
(none (none) 只輸出到控制臺
指定文件 (none) my.log 寫入指定的日志文件。名字可以是1個絕對位置或相對當前目錄。
(none) Specific directory /var/log spring.log到1個指定的目錄。名字可以是1個絕對位置或相對當前目錄。

當日志文件到達10M光陰志文件將循環,至于控制臺輸出,默許情況下只輸出ERRORWARNINFO級別的信息。

日志系統在利用程序的生命周期初期進行初始化,一樣地,通過@PropertySource注解加載的屬性文件中將不會發現日志屬性。

 

日志屬性獨立于真實的日志基礎架構以外。因此,Spring Boot不管理特定的配置主鍵(例如Logback的logback.configurationFile)。

26.4 日志級別

Spring支持的所有日志系統都可以在Spring的Environment中設置日志級別(例如在application.properties設置),使用logging.level.*=LEVEL進行設置,LEVEL是TRACE,DEBUG,INFO,WARN,ERROR,FATAL,OFF中的1個。root日志器可以用logging.level.root來配置。例如在application.properties中:

logging.level.root=WARN
logging.level.org.springframework.web=DEBUG
logging.level.org.hibernate=ERROR

默許情況下Spring Boot重新映照Thymeleaf的INFO信息,為了它們能在DEBUG級別進行輸出。這能幫助減少標準日志輸出中的噪聲。關于怎樣在你自己的配置中使用重新映照的更多細節請看LevelRemappingAppender

26.5 定制日志配置

在類路徑中通過包括恰當的庫可以激活各種日志系統,在類路徑的根目錄中提供1個適合的配置文件可以對日志系統進行更進1步的定制,或將配置文件放在Spring Environmentlogging.config屬性中指定的位置。

你可使用系統屬性org.springframework.boot.logging.LoggingSystem來強迫Spring Boot使用1個特定的日志系統。它的值應當是全限定類名的LoggingSystem實現。你也能夠通過使用值none來完全禁用Spring Boot的日志配置。

由于日志是在ApplicationContext創建之前初始化,因此不可能從Spring @Configuration文件中的@PropertySources來控制日志。系統屬性和傳統的Spring Boot外部配置文件可以工作的很好。

根據你的日志系統,將會加載下面的文件:

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)。如果你在使用標準的配置路徑,Spring不能完全控制日志的初始化。

 

在Java Java Util Logging中存在類加載問題,當從executable jar運行時會引發問題。我們建議你盡量的避免它。

為了幫助定制1些其它屬性,從Spring Environment中轉移到系統屬性中:

Spring Environment System Property Comments
logging.exception-conversion-word LOG_EXCEPTION_CONVERSION_WORD 當日志出現異常時會用到這個轉換詞。
logging.file LOG_FILE 如果定義了,會在默許的日志配置中使用。
logging.path LOG_PATH 如果定義了,會在默許的日志配置中使用。
logging.pattern.console CONSOLE_LOG_PATTERN 用在控制臺中的日志模式(stdout)。(只支持默許的Logback設置。)
logging.pattern.file FILE_LOG_PATTERN 用在文件中的日志模式 (如果啟用LOG_FILE)。(只支持默許的Logback設置。)
logging.pattern.level LOG_LEVEL_PATTERN 這類模式用來實行日志級別(默許%5p)。 (只支持默許的Logback設置。)
PID PID 當前的進程ID

當轉換配置文件時,所有的日志系統都支持查詢系統屬性。例如spring-boot.jar的默許配置。

如果你在日志屬性中想使用占位符,你應當試用Spring Boot的語法而不是底層框架的語法。特別是,如果你在使用Logback,你應當使用:作為屬性名和默許值之間的分隔符,而不是:-

 

你可以通太重寫LOG_LEVEL_PATTERN(或Logback中的logging.pattern.level)來添加MDC和其它的專門內容來日志行中。例如,你可使用logging.pattern.level=user:%X{user} %5p,默許的日志情勢將包括MDC輸入,如果它存在的話,例如:

2015-09⑶0 12:30:04.031 user:juergen INFO 22174 --- [  nio⑻080-exec-0] demo.Controller
Handling authenticated request

26.6 Logback擴大

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

你不能在標準的logback.xml配置文件中使用擴大,由于它加載的太早了。你需要使用logback-spring.xml或定義logging.config屬性。

26.6.1 特定profile的配置

<springProfile>標簽允許你自由的包括或排除基于激活的Spring profiles的配置的1部份。在<configuration>元素的任何地方都支持Profile部份。使用name屬性來指定哪個profile接受配置。多個profiles可以用1個逗號分隔的列表來指定。

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

26.6.2 Environment屬性

<springProperty>標簽允許你在Logback使用從Spring Environment取得的屬性。如果你想在你的Logback配置中訪問application.properties文件中的屬性,這是非常有用的。這個標簽與Logback的標準<property>標簽的作用方式類似,但不是為你指定的source屬性(從Environment中)指定1個直接的value。如果你需要在某個地方而不是在local作用域中存儲屬性,你可使用scope屬性。如果你需要1個備用值以防屬性沒有在Environment中設置,你可使用defaultValue屬性。

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

RelaxedPropertyResolver是用來訪問Environment屬性。如果在破折號符號中指定了source,則會嘗試所有的不嚴格的變種(myPropertyNameMY_PROPERTY_NAME等)。

生活不易,碼農辛苦
如果您覺得本網站對您的學習有所幫助,可以手機掃描二維碼進行捐贈
程序員人生
------分隔線----------------------------
分享到:
------分隔線----------------------------
關閉
程序員人生
主站蜘蛛池模板: 狠狠操网址 | 高清在线播放 | 亚洲精品久久久久网站 | 国产二三区 | 精品久久久久久久一区二区手机版 | 亚洲精品一区二区观看 | 国产精品久久久久久久久免费观看 | 亚洲免费久久 | 国产日韩欧美综合一区 | 最近中文国语字幕 | 波多野结衣在线不卡 | 久久福利网 | 开操网| 成人性欧美丨区二区三区 | 国产精品欧美亚洲韩国日本不卡 | 黑人性xxxⅹxxbbbbb | 高清欧美不卡一区二区三区 | 欧美军人男同69gay | 俄罗斯精品18videosex性 | 免费一区二区三区 | 国产精品国产三级国产专不∫ | 国产精品久久久久久久毛片 | 日本免费第一区二区三区 | 欧美人与性动交α欧美精品 | 成人一区视频 | 亚洲国产精品综合欧美 | 欧美人与动人物乱大交 | 高清中文字幕免费观在线 | 日本特黄a级高清免费酷网 日本特黄的免费大片视频 日本特黄高清免费大片爽 日本特黄色大片 | 欧美最猛性xxxxx69交 | 亚洲人成777在线播放 | 欧美精品福利视频 | 青青青青手机在线视频观看国产 | 欧美综合成人 | 中文字幕视频在线 | 国产精品欧美一区二区三区 | 国亚洲欧美日韩精品 | 久操美女| 免费一级毛片一级毛片aa | 欧美特级淫片 | wwwxxx日本护士|