最新国产好看的视频,伊人天堂AV在线,国产Aaaaaa视频,蜜臀视频在线观看一区,人妻av色图,密臀久久久精品影片,青青视频免费观看毛片,久草在线观看视,国产三级精品色情在线

SpringBoot中的Logging詳解

 更新時間:2023年09月09日 09:00:11   作者:果子爸聊技術(shù)  
這篇文章主要介紹了SpringBoot中的Logging詳解,log配置可能是被忽視的一個環(huán)節(jié),一般的項目中日志配置好了基本上很少去改動,我們常規(guī)操作是log.info來記錄日志內(nèi)容,很少會有人注意到springBoot中日志的配置,需要的朋友可以參考下

前言

log配置可能是被忽視的一個環(huán)節(jié),一般的項目中日志配置好了基本上很少去改動,我們常規(guī)操作是log.info來記錄日志內(nèi)容,很少會有人注意到springBoot中日志的配置

日志格式

2021-03-09 21:33:06.594  INFO 21236 --- [           main] com.gzb.springboot.logging.LoggingMain   : Starting LoggingMain using Java 1.8.0_111 on JT-DS998-pzj with PID 21236 (E:\workspace\springBoot-demo\out\production\classes started by arno.peng in E:\workspace\springBoot-demo)
2021-03-09 21:33:06.597  INFO 21236 --- [           main] com.gzb.springboot.logging.LoggingMain   : The following profiles are active: dev
2021-03-09 21:33:08.012  INFO 21236 --- [           main] o.s.b.w.embedded.tomcat.TomcatWebServer  : Tomcat initialized with port(s): 8080 (http)
2021-03-09 21:33:08.024  INFO 21236 --- [           main] o.apache.catalina.core.StandardService   : Starting service [Tomcat]
2021-03-09 21:33:08.024  INFO 21236 --- [           main] org.apache.catalina.core.StandardEngine  : Starting Servlet engine: [Apache Tomcat/9.0.43]
2021-03-09 21:33:08.156  INFO 21236 --- [           main] o.a.c.c.C.[Tomcat].[localhost].[/]       : Initializing Spring embedded WebApplicationContext
2021-03-09 21:33:08.156  INFO 21236 --- [           main] w.s.c.ServletWebServerApplicationContext : Root WebApplicationContext: initialization completed in 1498 ms
2021-03-09 21:33:08.408  INFO 21236 --- [           main] o.s.s.concurrent.ThreadPoolTaskExecutor  : Initializing ExecutorService 'applicationTaskExecutor'
2021-03-09 21:33:08.643  INFO 21236 --- [           main] o.s.b.w.embedded.tomcat.TomcatWebServer  : Tomcat started on port(s): 8080 (http) with context path ''
2021-03-09 21:33:08.662  INFO 21236 --- [           main] com.gzb.springboot.logging.LoggingMain   : Started LoggingMain in 3.163 seconds (JVM running for 5.555)

如上圖所示是springBoot中默認的日志輸出格式,一般包括幾個部分

  • 日期和時間:精確到毫秒,易于排序
  • 日志級別:ERROR, WARN, INFO, DEBUG, TRACE
  • 進程ID
  • [ main]表示線程名稱
  • Logger名稱:一般是類的路徑
  • 最后是日志的內(nèi)容

日志輸出

控制臺輸出

默認情況下SpringBoot將日志輸出到控制臺,會輸出INFO、WARN、ERROR這幾個級別的日志,當然還可以通過DEBUG參數(shù)來輸出DEBUG日志

比如你在application.yml配置中打開DEBUG日志 debug:true

或者以jar包的形式啟動 java -jar app.jar --debug

都可以以DEBUG模式來啟動項目,此時日志里面會多出很多信息

2021-03-09 21:48:22.581  INFO 2736 --- [           main] com.gzb.springboot.logging.LoggingMain   : Starting LoggingMain using Java 1.8.0_111 on JT-DS998-pzj with PID 2736 (E:\workspace\springBoot-demo\out\production\classes started by arno.peng in E:\workspace\springBoot-demo)
2021-03-09 21:48:22.586  INFO 2736 --- [           main] com.gzb.springboot.logging.LoggingMain   : The following profiles are active: dev
2021-03-09 21:48:22.590 DEBUG 2736 --- [           main] o.s.boot.SpringApplication               : Loading source class com.gzb.springboot.logging.LoggingMain
2021-03-09 21:48:22.681 DEBUG 2736 --- [           main] ConfigServletWebServerApplicationContext : Refreshing org.springframework.boot.web.servlet.context.AnnotationConfigServletWebServerApplicationContext@a3d8174
2021-03-09 21:48:24.179 DEBUG 2736 --- [           main] .s.b.w.e.t.TomcatServletWebServerFactory : Code archive: D:\maven\.gradle\caches\modules-2\files-2.1\org.springframework.boot\spring-boot\2.4.3\de2bd17a8eb9bc3dfa629aa06f2e9fe3bf603c85\spring-boot-2.4.3.jar
2021-03-09 21:48:24.180 DEBUG 2736 --- [           main] .s.b.w.e.t.TomcatServletWebServerFactory : Code archive: D:\maven\.gradle\caches\modules-2\files-2.1\org.springframework.boot\spring-boot\2.4.3\de2bd17a8eb9bc3dfa629aa06f2e9fe3bf603c85\spring-boot-2.4.3.jar
2021-03-09 21:48:24.180 DEBUG 2736 --- [           main] .s.b.w.e.t.TomcatServletWebServerFactory : None of the document roots [src/main/webapp, public, static] point to a directory and will be ignored.
2021-03-09 21:48:24.205  INFO 2736 --- [           main] o.s.b.w.embedded.tomcat.TomcatWebServer  : Tomcat initialized with port(s): 8080 (http)
2021-03-09 21:48:24.218  INFO 2736 --- [           main] o.apache.catalina.core.StandardService   : Starting service [Tomcat]
2021-03-09 21:48:24.218  INFO 2736 --- [           main] org.apache.catalina.core.StandardEngine  : Starting Servlet engine: [Apache Tomcat/9.0.43]
2021-03-09 21:48:24.344  INFO 2736 --- [           main] o.a.c.c.C.[Tomcat].[localhost].[/]       : Initializing Spring embedded WebApplicationContext
2021-03-09 21:48:24.344 DEBUG 2736 --- [           main] w.s.c.ServletWebServerApplicationContext : Published root WebApplicationContext as ServletContext attribute with name [org.springframework.web.context.WebApplicationContext.ROOT]
2021-03-09 21:48:24.344  INFO 2736 --- [           main] w.s.c.ServletWebServerApplicationContext : Root WebApplicationContext: initialization completed in 1663 ms
2021-03-09 21:48:24.364 DEBUG 2736 --- [           main] o.s.b.w.s.ServletContextInitializerBeans : Mapping filters: characterEncodingFilter urls=[/*] order=-2147483648, formContentFilter urls=[/*] order=-9900, requestContextFilter urls=[/*] order=-105
2021-03-09 21:48:24.364 DEBUG 2736 --- [           main] o.s.b.w.s.ServletContextInitializerBeans : Mapping servlets: dispatcherServlet urls=[/]
2021-03-09 21:48:24.432 DEBUG 2736 --- [           main] o.s.b.w.s.f.OrderedRequestContextFilter  : Filter 'requestContextFilter' configured for use
2021-03-09 21:48:24.433 DEBUG 2736 --- [           main] s.b.w.s.f.OrderedCharacterEncodingFilter : Filter 'characterEncodingFilter' configured for use
2021-03-09 21:48:24.433 DEBUG 2736 --- [           main] o.s.b.w.s.f.OrderedFormContentFilter     : Filter 'formContentFilter' configured for use
2021-03-09 21:48:24.754  INFO 2736 --- [           main] o.s.s.concurrent.ThreadPoolTaskExecutor  : Initializing ExecutorService 'applicationTaskExecutor'
2021-03-09 21:48:24.772 DEBUG 2736 --- [           main] s.w.s.m.m.a.RequestMappingHandlerAdapter : ControllerAdvice beans: 0 @ModelAttribute, 0 @InitBinder, 1 RequestBodyAdvice, 1 ResponseBodyAdvice
2021-03-09 21:48:24.877 DEBUG 2736 --- [           main] s.w.s.m.m.a.RequestMappingHandlerMapping : 2 mappings in 'requestMappingHandlerMapping'
2021-03-09 21:48:24.914 DEBUG 2736 --- [           main] o.s.w.s.handler.SimpleUrlHandlerMapping  : Patterns [/webjars/**, /resources/**] in 'resourceHandlerMapping'
2021-03-09 21:48:24.925 DEBUG 2736 --- [           main] .m.m.a.ExceptionHandlerExceptionResolver : ControllerAdvice beans: 0 @ExceptionHandler, 1 ResponseBodyAdvice
2021-03-09 21:48:24.943 DEBUG 2736 --- [           main] inMXBeanRegistrar$SpringApplicationAdmin : Application Admin MBean registered with name 'org.springframework.boot:type=Admin,name=SpringApplication'
2021-03-09 21:48:25.029  INFO 2736 --- [           main] o.s.b.w.embedded.tomcat.TomcatWebServer  : Tomcat started on port(s): 8080 (http) with context path ''

這個只是一部分,后面還有很多SpringBoot自動配置的信息因為篇幅的原因,沒有貼上來 DEBUG模式適用于調(diào)試問題,打印更加詳細的信息方便問題的定位

文件輸出

默認情況下,SpringBoot會把日志輸出到控制臺,一般生產(chǎn)環(huán)境會將日志輸出到文件,便于存儲。如果想把日志寫入文件,可以在application.yml配置文件中新增logging.file.name或者logging.file.path配置

  • logging.file.name 寫入指定的日志文件,名稱可以是絕對路徑或相對路徑
  • logging.file.path 寫入指定的目錄,日志名稱是spring.log,路徑可以是絕對路徑或相對路徑

日志級別

SpringBoot支持的所有日志系統(tǒng)都可以通過在application.yml中設(shè)置logging.level來配置日志級別,日志級別有TRACE, DEBUG, INFO, WARN, ERROR, FATAL, OFF這幾種,使用方式如下

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

以上可以為不同的功能模塊設(shè)置不同的日志級別,例如將root設(shè)置為warn,將hibernate設(shè)置為error

日志分組

有時候我們需要對多個功能同時進行日志級別配置,這個時候可以利用日志的分組功能。例如,我們需要設(shè)置tomcat相關(guān)的日志級別,我們可以先將對應(yīng)的模塊分組

logging:
  group:
    tomcat: "org.apache.catalina,org.apache.coyote,org.apache.tomcat"

然后對分組進行日志級別的設(shè)置

logging:
  level:
    tomcat: "trace"

自定義日志配置

你可以在項目的類路徑上包含適當?shù)娜罩緅ar來激活對應(yīng)的日志記錄系統(tǒng),也可以通過org.springframework.boot.logging.LoggingSystem系統(tǒng)屬性來強制指定SpringBoot來使用指定的日志記錄系統(tǒng),你還可以使用none值完全禁用Spring Boot的日志記錄配置

根據(jù)日志系統(tǒng)的不同,加載的文件也不同

Logging SystemCustomization
Logbacklogback-spring.xml, logback-spring.groovy, logback.xml, or logback.groovy
Log4j2log4j2-spring.xml or log4j2.xml
JDK (Java Util Logging)logging.properties

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

為了方便個性化配置,一些spring日志配置轉(zhuǎn)換成了系統(tǒng)配置

在這里插入圖片描述

所有支持的日志記錄系統(tǒng)都支持系統(tǒng)屬性的配置,說白了就是為了簡化配置,將logging配置轉(zhuǎn)換成系統(tǒng)屬性

具體詳細配置可以參考SpringBoot官方文檔中各個日志系統(tǒng)的用法

  • Logback
  • Log4j 2
  • Java Util logging

Logback擴展

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

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

概要文件配置

<springProfile name="staging">
    <!-- "staging" profile 被激活時啟用此配置 -->
</springProfile>
<springProfile name="dev | staging">
    <!-- "dev" or "staging"  profile 被激活時啟用此配置 -->
</springProfile>
<springProfile name="!production">
    <!-- 當不是"production"被激活時,啟用此配置 -->
</springProfile>

以上標簽可以讓你根據(jù)spring的profile激活的配置來選擇性的進行日志配置,name屬性用于指定激活的spring profile,可以正向指定,也可以用排除的方式

環(huán)境配置

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

標簽用于將spring上下文中的屬性公布出來,可以在logback中使用,如上所示, 定義了參數(shù)fluentHost,默認值為localhost,可以直接在配置文件中以${fluentHost}形式引用

好了,日志的部分就這么多,沒有寫太多的例子,大概了解一下后可以根據(jù)自己系統(tǒng)的實際情況來進行自定義配置,或者就使用springBoot默認的日志配置也沒太多的問題

到此這篇關(guān)于SpringBoot中的Logging詳解的文章就介紹到這了,更多相關(guān)SpringBoot的Logging內(nèi)容請搜索腳本之家以前的文章或繼續(xù)瀏覽下面的相關(guān)文章希望大家以后多多支持腳本之家!

相關(guān)文章

  • java中transient關(guān)鍵字的作用解析

    java中transient關(guān)鍵字的作用解析

    這篇文章主要介紹了java中transient關(guān)鍵字的作用解析,日常業(yè)務(wù)中,為了安全起見,有些敏感信息我們不希望在網(wǎng)絡(luò)間被傳輸可以使用transient對字段進行修飾,不進行序列化,則返回獲取到的字段為null,需要的朋友可以參考下
    2023-11-11
  • springboot中bootstrap配置無效的解決方案

    springboot中bootstrap配置無效的解決方案

    在Spring Boot中,從4.4.1版本開始,spring-cloud-starter-bootstrap的配置加載默認為關(guān)閉狀態(tài),需要在pom文件中引入依賴并在Spring Boot配置文件中開啟spring.cloud.bootstrap.enabled配置,或者在啟動命令中使用--spring.cloud.bootstrap.enabled=true參數(shù)開啟
    2026-04-04
  • Spring Boot 集成Dubbo框架實例

    Spring Boot 集成Dubbo框架實例

    本篇文章主要介紹了Spring Boot 集成Dubbo框架實例,小編覺得挺不錯的,現(xiàn)在分享給大家,也給大家做個參考。一起跟隨小編過來看看吧
    2017-05-05
  • JavaFx實現(xiàn)登錄成功跳轉(zhuǎn)到程序主頁面

    JavaFx實現(xiàn)登錄成功跳轉(zhuǎn)到程序主頁面

    這篇文章主要為大家詳細介紹了JavaFx實現(xiàn)登錄成功跳轉(zhuǎn)到程序主頁面,文中示例代碼介紹的非常詳細,具有一定的參考價值,感興趣的小伙伴們可以參考一下
    2022-06-06
  • Spring中的FactoryBean與ObjectFactory詳解

    Spring中的FactoryBean與ObjectFactory詳解

    這篇文章主要介紹了Spring中的FactoryBean與ObjectFactory詳解,FactoryBean是一種特殊的bean,本身又是個工廠,實現(xiàn)了FactoryBean的bean會被注冊到容器中,需要的朋友可以參考下
    2023-12-12
  • spring boot實現(xiàn)驗證碼功能

    spring boot實現(xiàn)驗證碼功能

    Spring Boot是由Pivotal團隊提供的全新框架,其設(shè)計目的是用來簡化新Spring應(yīng)用的初始搭建以及開發(fā)過程。這篇文章主要介紹了spring boot實現(xiàn)驗證碼功能,需要的朋友可以參考下
    2018-04-04
  • Maven管理SpringBoot Profile詳解

    Maven管理SpringBoot Profile詳解

    這篇文章主要介紹了Maven管理SpringBoot Profile詳解,具有一定參考價值,需要的朋友可以了解下。
    2017-10-10
  • 詳解SpringBoot如何優(yōu)雅的進行前后端通信

    詳解SpringBoot如何優(yōu)雅的進行前后端通信

    現(xiàn)在的項目基本上都是前后端分離的項目,如何打通前后端,接收前端傳過來的參數(shù)呢,下面小編就來和大家詳細介紹一下SpringBoot如何優(yōu)雅的進行前后端通信
    2024-03-03
  • kettle中使用js調(diào)用java類的方法

    kettle中使用js調(diào)用java類的方法

    這篇文章主要介紹了kettle中使用js調(diào)用java類的方法,本文講解了注意事項和調(diào)用語法,需要的朋友可以參考下
    2015-05-05
  • JavaWeb中的filter過濾敏感詞匯案例詳解

    JavaWeb中的filter過濾敏感詞匯案例詳解

    敏感詞、文字過濾是一個網(wǎng)站必不可少的功能,本篇文章主要介紹了JavaWeb中的filter過濾敏感詞匯案例,具有一定的參考價值,有需要的可以了解一下,
    2016-11-11

最新評論

揭西县| 天长市| 洞口县| 嘉鱼县| 海原县| 德惠市| 交口县| 肃宁县| 西吉县| 郁南县| 芜湖市| 赞皇县| 呼和浩特市| 长海县| 库尔勒市| 胶南市| 武强县| 九龙坡区| 常山县| 谢通门县| 淮阳县| 三都| 成武县| 通州区| 九寨沟县| 克山县| 潼南县| 阿拉善左旗| 银川市| 建宁县| 阳西县| 正宁县| 沈阳市| 西华县| 德昌县| 陵水| 河曲县| 浮梁县| 红安县| 元阳县| 富蕴县|