<ruby id="bdb3f"></ruby>

    <p id="bdb3f"><cite id="bdb3f"></cite></p>

      <p id="bdb3f"><cite id="bdb3f"><th id="bdb3f"></th></cite></p><p id="bdb3f"></p>
        <p id="bdb3f"><cite id="bdb3f"></cite></p>

          <pre id="bdb3f"></pre>
          <pre id="bdb3f"><del id="bdb3f"><thead id="bdb3f"></thead></del></pre>

          <ruby id="bdb3f"><mark id="bdb3f"></mark></ruby><ruby id="bdb3f"></ruby>
          <pre id="bdb3f"><pre id="bdb3f"><mark id="bdb3f"></mark></pre></pre><output id="bdb3f"></output><p id="bdb3f"></p><p id="bdb3f"></p>

          <pre id="bdb3f"><del id="bdb3f"><progress id="bdb3f"></progress></del></pre>

                <ruby id="bdb3f"></ruby>

                ThinkChat2.0新版上線,更智能更精彩,支持會話、畫圖、視頻、閱讀、搜索等,送10W Token,即刻開啟你的AI之旅 廣告
                # 26\. 日志 Spring Boot使用[Commons Logging](https://commons.apache.org/logging)進行所有內部日志記錄,但使基礎日志實現開放。 默認配置提供了[Java Util Logging](https://docs.oracle.com/javase/7/docs/api/java/util/logging/package-summary.html),[Log4J2](https://logging.apache.org/log4j/2.x/)和[Logback](http://logback.qos.ch/)。 在每種情況下,記錄器都預先配置為使用控制臺輸出和可選文件輸出都可用。 默認情況下,如果使用'Starters',將會使用Logback。 還包括適當的Logback路由,以確保使用Java Util Logging,Commons Logging,Log4J或SLF4J的依賴庫都能正常工作。 > 有很多可用于Java的日志記錄框架。 如果上面的列表看起來很混亂,別擔心。 一般來說,您不需要更改日志依賴關系,并且Spring Boot默認值將正常工作。 ### [](file:///C:/Users/geekidentity/AppData/Local/Youdao/YNote/markdown/index.html#261-日志格式)26.1 日志格式 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: [/*] ``` 輸出以下項目: * 日期和時間 - 毫秒精度并且容易排序。 * 日志級別 - ERROR, WARN, INFO, DEBUG, TRACE. * 進程ID。 * ---分隔符來區分實際日志消息的開始。 * 線程名稱 - 括在方括號中(可能會截斷控制臺輸出)。 * 記錄器名稱 - 這通常是源類名(通常縮寫)。 * 日志消息。 > Logback沒有FATAL級別(對映ERROR) ### [](file:///C:/Users/geekidentity/AppData/Local/Youdao/YNote/markdown/index.html#262-控制臺輸出)26.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組合)啟用trace日志。 #### [](file:///C:/Users/geekidentity/AppData/Local/Youdao/YNote/markdown/index.html#2621-日志顏色輸出)26.2.1 日志顏色輸出 如果您的終端支持ANSI,顏色輸出可以增加可讀性。 您可以將spring.output.ansi.enabled設置為[支持的值](http://docs.spring.io/spring-boot/docs/1.5.2.RELEASE/api/org/springframework/boot/ansi/AnsiOutput.Enabled.html)來覆蓋自動檢測。 使用%clr關鍵字配置顏色編碼。 在最簡單的形式下,轉換器將根據日志級別對輸出進行著色,例如: ``` %clr(%5p) ``` 日志級別映射到顏色如下: * blue * cyan * faint * green * magenta * red * yellow ### [](file:///C:/Users/geekidentity/AppData/Local/Youdao/YNote/markdown/index.html#263-文件輸出)26.3 文件輸出 默認情況下,Spring Boot將僅將日志輸出到控制臺,不會寫到文件。 如果要將控制臺上的日志輸出到日志文件,則需要設置logging.file或logging.path屬性(例如在application.properties中)。 下表顯示了如何一起使用logging.*屬性: 表26.1 Logging屬性 | logging.file | logging.path | Example | Description | | --- | --- | --- | --- | | (none) | (none) | ? | 僅控制臺輸出 | | Specific file | (none) | my.log | 寫入指定的日志文件。 名稱可以是確切的位置或相對于當前目錄。 | | (none) | Specific directory | /var/log | 將spring.log寫入指定的目錄。 名稱可以是確切的位置或相對于當前目錄。 | 日志文件將在10 MB時滾動輸出到文件,默認情況下會記錄控制臺輸出,ERROR,WARN和INFO級別的消息。 > 日志記錄系統在應用程序生命周期早期初始化,并且在通過@PropertySource注解加載的屬性文件中將不會找到log屬性[。](http://note.youdao.com/) > 日志屬性獨立于實際的日志記錄基礎結構。 因此,特定配置key(如Logback的logback.configurationFile)不受Spring Boot管理。 ### [](file:///C:/Users/geekidentity/AppData/Local/Youdao/YNote/markdown/index.html#264-日志級別)26.4 日志級別 所有支持的日志記錄系統都可以在Spring Environment 中設置log級別(例如在application.properties中),使用‘logging.level.*=LEVEL’,其中'LEVEL'是TRACE,DEBUG,INFO,WARN,ERROR,FATAL, OFF之一。 可以使用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](https://github.com/spring-projects/spring-boot/tree/v1.5.2.RELEASE/spring-boot/src/main/java/org/springframework/boot/logging/logback/LevelRemappingAppender.java)。 ### [](file:///C:/Users/geekidentity/AppData/Local/Youdao/YNote/markdown/index.html#265-自定義日志配置)26.5 自定義日志配置 可以通過在類路徑中包含適當的庫來激活各種日志系統,并通過在類路徑的根目錄中提供合適的配置文件,或在Spring Environment屬性logging.config指定的位置進一步配置。 您可以使用org.springframework.boot.logging.LoggingSystem系統屬性強制Spring Boot使用特定的日志記錄系統。該值應該是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 Util Logging存在已知的類加載問題,從“可執行jar”運行時會導致問題。 我們建議您盡可能避免。 幫助定制一些其他屬性從Spring環境轉移到系統屬性: | 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(如果可能的話,當未被定義為OS環境變量時被發現)。 | 支持的所有日志記錄系統在分析其配置文件時可以查看系統屬性。 有關示例,請參閱spring-boot.jar中的默認配置。 > 如果要在logging屬性中使用占位符,則應使[用Spring Boot的語法](http://docs.spring.io/spring-boot/docs/1.5.2.RELEASE/reference/htmlsingle/#boot-features-external-config-placeholders-in-properties),而不是底層框架的語法。 值得注意的是,如果您使用Logback,您應該使用:作為屬性名稱與其默認值之間的分隔符,而不是`:-`。 > 您可以通過覆蓋LOG_LEVEL_PATTERN(或Logback的log.pattern.level)來添加MDC和其他ad-hoc內容到日志行。 例如,如果使用logging.pattern.level = user:%X {user}%5p,則默認日志格式將包含“user”的MDC條目(如果存在)。 ``` 2015-09-30 12:30:04.031 user:juergen INFO 22174 --- [ nio-8080-exec-0] demo.Controller Handling authenticated request ``` ### [](file:///C:/Users/geekidentity/AppData/Local/Youdao/YNote/markdown/index.html#266-logback擴展)26.6 Logback擴展 Spring Boot包括大量的Logback擴展,可以幫助您進行高級配置。 您可以在logback-spring.xml配置文件中使用這些擴展。 > 您不能在標準logback.xml配置文件中使用擴展名,因為其加載時間太早。 您需要使用logback-spring.xml或定義logging.config屬性。 > 擴展名不能與Logback的[配置掃描](http://logback.qos.ch/manual/configuration.html#autoScan)一起使用。 如果您嘗試這樣做,對配置文件進行更改將導致類似于以下記錄之一的錯誤: ``` 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]] ``` #### [](file:///C:/Users/geekidentity/AppData/Local/Youdao/YNote/markdown/index.html#2661-指定配置文件配置)26.6.1 指定配置文件配置 `&lt;springProfile&gt;`標簽允許您根據活動的Spring配置文件可選地包含或排除配置部分。 配置文件部分支持`&lt;configuration&gt;`元素在任何位置。 使用name屬性指定哪個配置文件接受配置。 可以使用逗號分隔列表指定多個配置文件。 ``` <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> ``` #### [](file:///C:/Users/geekidentity/AppData/Local/Youdao/YNote/markdown/index.html#2662-環境屬性)26.6.2 環境屬性 &lt;springProperty&gt;標簽允許您從Spring環境中顯示屬性,以便在Logback中使用。 如果您在logback中訪問application.properties文件中的值,這將非常有用。 標簽的工作方式與Logback標準的&lt;property&gt;標簽類似,但不是指定直接值,而是指定屬性的來源(來自Environment)。 如果需要將屬性存儲在本地范圍以外的位置,則可以使用scope屬性。 如果在環境中未設置屬性的情況下需要備用值,則可以使用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屬性。 如果以虛線表示法(my-property-name)指定源,則將嘗試所有寬松的變體(myPropertyName,MY_PROPERTY_NAME等)。
                  <ruby id="bdb3f"></ruby>

                  <p id="bdb3f"><cite id="bdb3f"></cite></p>

                    <p id="bdb3f"><cite id="bdb3f"><th id="bdb3f"></th></cite></p><p id="bdb3f"></p>
                      <p id="bdb3f"><cite id="bdb3f"></cite></p>

                        <pre id="bdb3f"></pre>
                        <pre id="bdb3f"><del id="bdb3f"><thead id="bdb3f"></thead></del></pre>

                        <ruby id="bdb3f"><mark id="bdb3f"></mark></ruby><ruby id="bdb3f"></ruby>
                        <pre id="bdb3f"><pre id="bdb3f"><mark id="bdb3f"></mark></pre></pre><output id="bdb3f"></output><p id="bdb3f"></p><p id="bdb3f"></p>

                        <pre id="bdb3f"><del id="bdb3f"><progress id="bdb3f"></progress></del></pre>

                              <ruby id="bdb3f"></ruby>

                              哎呀哎呀视频在线观看