SpringBoot - 第十章 | 日誌管理 
    Spring Boot使用Commons Logging進行所有內部日誌記錄,但保留底層日誌實現。 為Java Util Logging,Log4J2和Logback提供了預設配置。在每種情況下,記錄器都預先配置為使用控制台輸出,並且還提供可選的文件輸出。
預設情況下,如果使用”Starters”,則將使用Logback進行日誌記錄。 還包括適當的Logback路由,以確保使用Java Util Logging,Commons Logging,Log4J或SLF4J的依賴庫都能正常工作。
 
預設日誌 
預設情況下,Spring Boot會用Logback來記錄日誌,並用INFO級別輸出到控制台。在運行應用程序和其他例子時,你應該已經看到很多INFO級別的日誌了。 
 
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19   .   ____          _            __ _ _  /\\ / ___'_ __ _ _(_)_ __  __ _ \ \ \ \ ( ( )\___ | '_ | '_| | '_ \/ _` | \ \ \ \  \\/  ___)| |_)| | | | | || (_| |  ) ) ) )   '  |____| .__|_| |_|_| |_\__, | / / / /  =========|_|==============|___/=/_/_/_/  :: Spring Boot ::        (v2.1.3 .RELEASE) 2019 -03 -19  09 :38 :22.003   INF O 2588  --- [           main] c.j.l.s.chapter10.Chapter10Application   : Starting Chapter10Application on localhost with PID 2588  (/Users/morose/Documents/workspace-SpringBoot/chapter-10 /target/classes started  by morose in  /Users/morose/Documents/workspace-SpringBoot/chapter-10 )2019 -03 -19  09 :38 :22.008   INF O 2588  --- [           main] c.j.l.s.chapter10.Chapter10Application   : No active profile set, falling back to default profiles: default2019 -03 -19  09 :38 :23.144   INF O 2588  --- [           main] o.s.b.w.embedded.tomcat.TomcatWebServer  : Tomcat initialized with port(s): 8080  (http)2019 -03 -19  09 :38 :23.175   INF O 2588  --- [           main] o.apache.catalina.core.StandardService   : Starting service [Tomcat]2019 -03 -19  09 :38 :23.175   INF O 2588  --- [           main] org.apache.catalina.core.StandardEngine  : Starting Servlet engine: [Apache Tomcat/9.0 .16 ]2019 -03 -19  09 :38 :23.187   INF O 2588  --- [           main] o.a.catalina.core.AprLifecycleListener   : The APR based Apache Tomcat Native library which allows optimal performance in  production environments was not found on the java.library.path: [/Users/morose/Library/Java/Extensions:/Library/Java/Extensions:/Network/Library/Java/Extensions:/System/Library/Java/Extensions:/usr/lib/java:.]2019 -03 -19  09 :38 :23.295   INF O 2588  --- [           main] o.a.c.c.C.[Tomcat].[localhost].[/]       : Initializing Spring embedded WebApplicationContext2019 -03 -19  09 :38 :23.295   INF O 2588  --- [           main] o.s.web.context.ContextLoader            : Root WebApplicationContext: initialization completed in  1212  ms2019 -03 -19  09 :38 :23.554   INF O 2588  --- [           main] o.s.s.concurrent.ThreadPoolTaskExecutor  : Initializing ExecutorService 'applicationTaskExecutor'2019 -03 -19  09 :38 :23.803   INF O 2588  --- [           main] o.s.b.w.embedded.tomcat.TomcatWebServer  : Tomcat started  on port(s): 8080  (http) with context path ''2019 -03 -19  09 :38 :23.806   INF O 2588  --- [           main] c.j.l.s.chapter10.Chapter10Application   : Started  Chapter10Application in  2.149  seconds (JVM running for 2.555 )
 
 
格式化日誌 
訊息內容 
元素 
說明 
 
 
2019-03-19 09:38:23.144 
時間日期 
精確到毫秒 
 
INFO 
日誌級別 
ERROR, WARN, INFO, DEBUG or TRACE 
 
2588 
進程ID 
進程ID 
 
- - - 
分隔符 
- - - 標識實際日誌的開始 
 
[           main] 
線程名 
方括號括起來(可能會截斷控制台輸出) 
 
o.s.b.w.embedded.tomcat.TomcatWebServer 
Logger名 
通常使用源代碼的類名 
 
Tomcat initialized with port(s): 8080 (http) 
日誌內容 
日誌內容 
 
 
控制台輸出 在Spring Boot中預設配置了FATAL、ERROR、WARN和INFO級別的日誌輸出到控制台。
可以看到輸出的Log等級,就是包含INFO以上的等級
 
我們可以通過兩種方式切換至DEBUG級別:
在運行命令後加入 –debug,如:$java -jar xxx.jar –debug
 
在application.properties中 配置debug=true,該屬性置為true的時候,核心Logger(包含嵌入式容器、hibernate、spring)會輸出更多內容,但是你自己應用的日誌並不會輸出為DEBUG級別 。
 
修改 application.properties
 
 
 
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 71 72 73 74 75 76 77 78 79 80 81 82 83 84 85 86 87 88 89 90 91 92 2019 -03 -19  10 :35 :42.209  DEBUG 2722  --- [           main] .c.l.ClasspathLoggingApplicationListener : Application started  with classpath: [file:/Users/morose/Documents/workspace-SpringBoot/chapter-10 /target/classes/, file:/Users/morose/.m2/repository/org/springframework/boot/spring-boot-starter-web/2.1 .3 .RELEASE/spring-boot-starter-web-2.1 .3 .RELEASE.jar, file:/Users/morose/.m2/repository/org/springframework/boot/spring-boot-starter/2.1 .3 .RELEASE/spring-boot-starter-2.1 .3 .RELEASE.jar, file:/Users/morose/.m2/repository/org/springframework/boot/spring-boot/2.1 .3 .RELEASE/spring-boot-2.1 .3 .RELEASE.jar, file:/Users/morose/.m2/repository/org/springframework/boot/spring-boot-autoconfigure/2.1 .3 .RELEASE/spring-boot-autoconfigure-2.1 .3 .RELEASE.jar, file:/Users/morose/.m2/repository/org/springframework/boot/spring-boot-starter-logging/2.1 .3 .RELEASE/spring-boot-starter-logging-2.1 .3 .RELEASE.jar, file:/Users/morose/.m2/repository/ch/qos/logback/logback-classic/1.2 .3 /logback-classic-1.2 .3 .jar, file:/Users/morose/.m2/repository/ch/qos/logback/logback-core/1.2 .3 /logback-core-1.2 .3 .jar, file:/Users/morose/.m2/repository/org/apache/logging/log4j/log4j-to-slf4j/2.11 .2 /log4j-to-slf4j-2.11 .2 .jar, file:/Users/morose/.m2/repository/org/apache/logging/log4j/log4j-api/2.11 .2 /log4j-api-2.11 .2 .jar, file:/Users/morose/.m2/repository/org/slf4j/jul-to-slf4j/1.7 .25 /jul-to-slf4j-1.7 .25 .jar, file:/Users/morose/.m2/repository/org/yaml/snakeyaml/1.23 /snakeyaml-1.23 .jar, file:/Users/morose/.m2/repository/org/springframework/boot/spring-boot-starter-json/2.1 .3 .RELEASE/spring-boot-starter-json-2.1 .3 .RELEASE.jar, file:/Users/morose/.m2/repository/com/fasterxml/jackson/core/jackson-databind/2.9 .8 /jackson-databind-2.9 .8 .jar, file:/Users/morose/.m2/repository/com/fasterxml/jackson/core/jackson-annotations/2.9 .0 /jackson-annotations-2.9 .0 .jar, file:/Users/morose/.m2/repository/com/fasterxml/jackson/core/jackson-core/2.9 .8 /jackson-core-2.9 .8 .jar, file:/Users/morose/.m2/repository/com/fasterxml/jackson/datatype/jackson-datatype-jdk8/2.9 .8 /jackson-datatype-jdk8-2.9 .8 .jar, file:/Users/morose/.m2/repository/com/fasterxml/jackson/datatype/jackson-datatype-jsr310/2.9 .8 /jackson-datatype-jsr310-2.9 .8 .jar, file:/Users/morose/.m2/repository/com/fasterxml/jackson/module/jackson-module-parameter-names/2.9 .8 /jackson-module-parameter-names-2.9 .8 .jar, file:/Users/morose/.m2/repository/org/hibernate/validator/hibernate-validator/6.0 .14 .Final/hibernate-validator-6.0 .14 .Final.jar, file:/Users/morose/.m2/repository/javax/validation/validation-api/2.0 .1 .Final/validation-api-2.0 .1 .Final.jar, file:/Users/morose/.m2/repository/org/jboss/logging/jboss-logging/3.3 .2 .Final/jboss-logging-3.3 .2 .Final.jar, file:/Users/morose/.m2/repository/com/fasterxml/classmate/1.4 .0 /classmate-1.4 .0 .jar, file:/Users/morose/.m2/repository/org/springframework/spring-web/5.1 .5 .RELEASE/spring-web-5.1 .5 .RELEASE.jar, file:/Users/morose/.m2/repository/org/springframework/spring-beans/5.1 .5 .RELEASE/spring-beans-5.1 .5 .RELEASE.jar, file:/Users/morose/.m2/repository/org/springframework/spring-webmvc/5.1 .5 .RELEASE/spring-webmvc-5.1 .5 .RELEASE.jar, file:/Users/morose/.m2/repository/org/springframework/spring-aop/5.1 .5 .RELEASE/spring-aop-5.1 .5 .RELEASE.jar, file:/Users/morose/.m2/repository/org/springframework/spring-context/5.1 .5 .RELEASE/spring-context-5.1 .5 .RELEASE.jar, file:/Users/morose/.m2/repository/org/springframework/spring-expression/5.1 .5 .RELEASE/spring-expression-5.1 .5 .RELEASE.jar, file:/Users/morose/.m2/repository/org/springframework/boot/spring-boot-starter-tomcat/2.1 .3 .RELEASE/spring-boot-starter-tomcat-2.1 .3 .RELEASE.jar, file:/Users/morose/.m2/repository/javax/annotation/javax.annotation-api/1.3 .2 /javax.annotation-api-1.3 .2 .jar, file:/Users/morose/.m2/repository/org/apache/tomcat/embed/tomcat-embed-core/9.0 .16 /tomcat-embed-core-9.0 .16 .jar, file:/Users/morose/.m2/repository/org/apache/tomcat/embed/tomcat-embed-el/9.0 .16 /tomcat-embed-el-9.0 .16 .jar, file:/Users/morose/.m2/repository/org/apache/tomcat/embed/tomcat-embed-websocket/9.0 .16 /tomcat-embed-websocket-9.0 .16 .jar, file:/Users/morose/.m2/repository/org/slf4j/slf4j-api/1.7 .25 /slf4j-api-1.7 .25 .jar, file:/Users/morose/.m2/repository/org/springframework/spring-core/5.1 .5 .RELEASE/spring-core-5.1 .5 .RELEASE.jar, file:/Users/morose/.m2/repository/org/springframework/spring-jcl/5.1 .5 .RELEASE/spring-jcl-5.1 .5 .RELEASE.jar]  .   ____          _            __ _ _  /\\ / ___'_ __ _ _(_)_ __  __ _ \ \ \ \ ( ( )\___ | '_ | '_| | '_ \/ _` | \ \ \ \  \\/  ___)| |_)| | | | | || (_| |  ) ) ) )   '  |____| .__|_| |_|_| |_\__, | / / / /  =========|_|==============|___/=/_/_/_/  :: Spring Boot ::        (v2.1.3 .RELEASE) 2019 -03 -19  10 :35 :42.319   INF O 2722  --- [           main] c.j.l.s.chapter10.Chapter10Application   : Starting Chapter10Application on localhost with PID 2722  (/Users/morose/Documents/workspace-SpringBoot/chapter-10 /target/classes started  by morose in  /Users/morose/Documents/workspace-SpringBoot/chapter-10 )2019 -03 -19  10 :35 :42.320   INF O 2722  --- [           main] c.j.l.s.chapter10.Chapter10Application   : No active profile set, falling back to default profiles: default2019 -03 -19  10 :35 :42.320  DEBUG 2722  --- [           main] o.s.boot.SpringApplication               : Loading source class com.jj.learning.springboot.chapter10.Chapter10Application2019 -03 -19  10 :35 :42.389  DEBUG 2722  --- [           main] o.s.b.c.c.ConfigFileApplicationListener  : Loaded config file 'file:/Users/morose/Documents/workspace-SpringBoot/chapter-10 /target/classes/application.properties' (classpath:/application.properties)2019 -03 -19  10 :35 :42.390  DEBUG 2722  --- [           main] ConfigServletWebServerApplicationContext : Refreshing org.springframework.boot.web.servlet.context.AnnotationConfigServletWebServerApplicationContext@50 a7bc6e2019 -03 -19  10 :35 :43.400  DEBUG 2722  --- [           main] .s.b.w.e.t.TomcatServletWebServerFactory : Code archive: /Users/morose/.m2/repository/org/springframework/boot/spring-boot/2.1 .3 .RELEASE/spring-boot-2.1 .3 .RELEASE.jar2019 -03 -19  10 :35 :43.401  DEBUG 2722  --- [           main] .s.b.w.e.t.TomcatServletWebServerFactory : Code archive: /Users/morose/.m2/repository/org/springframework/boot/spring-boot/2.1 .3 .RELEASE/spring-boot-2.1 .3 .RELEASE.jar2019 -03 -19  10 :35 :43.401  DEBUG 2722  --- [           main] .s.b.w.e.t.TomcatServletWebServerFactory : Document root: /Users/morose/Documents/workspace-SpringBoot/chapter-10 /src/main/webapp2019 -03 -19  10 :35 :43.434   INF O 2722  --- [           main] o.s.b.w.embedded.tomcat.TomcatWebServer  : Tomcat initialized with port(s): 8080  (http)2019 -03 -19  10 :35 :43.467   INF O 2722  --- [           main] o.apache.catalina.core.StandardService   : Starting service [Tomcat]2019 -03 -19  10 :35 :43.468   INF O 2722  --- [           main] org.apache.catalina.core.StandardEngine  : Starting Servlet engine: [Apache Tomcat/9.0 .16 ]2019 -03 -19  10 :35 :43.483   INF O 2722  --- [           main] o.a.catalina.core.AprLifecycleListener   : The APR based Apache Tomcat Native library which allows optimal performance in  production environments was not found on the java.library.path: [/Users/morose/Library/Java/Extensions:/Library/Java/Extensions:/Network/Library/Java/Extensions:/System/Library/Java/Extensions:/usr/lib/java:.]2019 -03 -19  10 :35 :43.602   INF O 2722  --- [           main] o.a.c.c.C.[Tomcat].[localhost].[/]       : Initializing Spring embedded WebApplicationContext2019 -03 -19  10 :35 :43.602   INF O 2722  --- [           main] o.s.web.context.ContextLoader            : Root WebApplicationContext: initialization completed in  1212  ms2019 -03 -19  10 :35 :43.635  DEBUG 2722  --- [           main] o.s.b.w.s.ServletContextInitializerBeans : Mapping filters: characterEncodingFilter urls= [/*], hiddenHttpMethodFilter urls= [/*], formContentFilter urls= [/*], requestContextFilter urls= [/*]2019 -03 -19  10 :35 :43.636  DEBUG 2722  --- [           main] o.s.b.w.s.ServletContextInitializerBeans : Mapping servlets: dispatcherServlet urls= [/]2019 -03 -19  10 :35 :43.664  DEBUG 2722  --- [           main] o.s.b.w.s.f.OrderedRequestContextFilter  : Filter 'requestContextFilter' configured for use2019 -03 -19  10 :35 :43.665  DEBUG 2722  --- [           main] .s.b.w.s.f.OrderedHiddenHttpMethodFilter : Filter 'hiddenHttpMethodFilter' configured for use2019 -03 -19  10 :35 :43.665  DEBUG 2722  --- [           main] s.b.w.s.f.OrderedCharacterEncodingFilter : Filter 'characterEncodingFilter' configured for use2019 -03 -19  10 :35 :43.665  DEBUG 2722  --- [           main] o.s.b.w.s.f.OrderedFormContentFilter     : Filter 'formContentFilter' configured for use2019 -03 -19  10 :35 :43.890   INF O 2722  --- [           main] o.s.s.concurrent.ThreadPoolTaskExecutor  : Initializing ExecutorService 'applicationTaskExecutor'2019 -03 -19  10 :35 :44.111  DEBUG 2722  --- [           main] ConditionEvaluationReportLoggingListener : ============================ CONDITIONS EVALUATION REPORT ============================ Positive matches: -----------------    CodecsAutoConfiguration matched:       - @ConditionalOnClass found required class 'org.springframework.http.codec.CodecConfigurer' (OnClassCondition)    CodecsAutoConfiguration.JacksonCodecConfiguration matched:       - @ConditionalOnClass found required class 'com.fasterxml.jackson.databind.ObjectMapper' (OnClassCondition)       省略... Negative matches: -----------------    ActiveMQAutoConfiguration:       Did not match:          - @ConditionalOnClass did not find required class 'javax.jms.ConnectionFactory' (OnClassCondition)    AopAutoConfiguration:       Did not match:          - @ConditionalOnClass did not find required class 'org.aspectj.lang.annotation.Aspect' (OnClassCondition)    省略... Exclusions: -----------     None Unconditional classes: ----------------------     org.springframework.boot.autoconfigure.context.ConfigurationPropertiesAutoConfiguration     org.springframework.boot.autoconfigure.context.PropertyPlaceholderAutoConfiguration     org.springframework.boot.autoconfigure.inf o.ProjectInf oAutoConfiguration 2019 -03 -19  10 :35 :44.160   INF O 2722  --- [           main] o.s.b.w.embedded.tomcat.TomcatWebServer  : Tomcat started  on port(s): 8080  (http) with context path ''2019 -03 -19  10 :35 :44.164   INF O 2722  --- [           main] c.j.l.s.chapter10.Chapter10Application   : Started  Chapter10Application in  2.179  seconds (JVM running for 2.558 )2019 -03 -19  10 :36 :02.294   INF O 2722  --- [nio-8080 -exec-1 ] o.a.c.c.C.[Tomcat].[localhost].[/]       : Initializing Spring DispatcherServlet 'dispatcherServlet'2019 -03 -19  10 :36 :02.294   INF O 2722  --- [nio-8080 -exec-1 ] o.s.web.servlet.DispatcherServlet        : Initializing Servlet 'dispatcherServlet'2019 -03 -19  10 :36 :02.300   INF O 2722  --- [nio-8080 -exec-1 ] o.s.web.servlet.DispatcherServlet        : Completed initialization in  6  ms2019 -03 -19  10 :36 :02.340   INF O 2722  --- [nio-8080 -exec-1 ] c.j.l.s.c.c.LoggerDemoController         : inf o(訊息):123 2019 -03 -19  10 :36 :02.342   WARN 2722  --- [nio-8080 -exec-1 ] c.j.l.s.c.c.LoggerDemoController         : warn(警告):123 2019 -03 -19  10 :36 :02.342  ERROR 2722  --- [nio-8080 -exec-1 ] c.j.l.s.c.c.LoggerDemoController         : error(錯誤):123 2019 -03 -19  10 :36 :02.342  ERROR 2722  --- [nio-8080 -exec-1 ] c.j.l.s.c.c.LoggerDemoController         : fatal(致命):123 
 
可以看到多輸出了很多的資訊,但是在最後自己的應用Log依舊是INFO等級的,這就是「核心Logger(包含嵌入式容器、hibernate、spring)會輸出更多內容,但是你自己應用的日誌並不會輸出為DEBUG級別。」這句話的意思。
 
 
文件輸出 Spring Boot預設配置只會輸出到控制台,並不會記錄到文件中,但是我們通常生產環境使用時都需要以文件方式記錄。
若要增加文件輸出,需要在application.properties中配置logging.file或logging.path屬性。
logging.file,設置文件,可以是絕對路徑,也可以是相對路徑。如:logging.file=my.log 
logging.path,設置目錄,會在該目錄下建立spring.log文件,並寫入日誌內容,如:logging.path=/var/log 
 
註:二者不能同時使用,若同時使用,則只有logging.file生效,預設情況下,日誌文件的大小達到10MB時會截斷,產生新的日誌文件,預設級別為:ERROR、WARN、INFO
 
修改 application.properties 
 
 
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 2019 -03 -19  11 :04 :31.532   INF O 2807  --- [main] c.j.l.s.chapter10.Chapter10Application   : Starting Chapter10Application on localhost with PID 2807  (/Users/morose/Documents/workspace-SpringBoot/chapter-10 /target/classes started  by morose in  /Users/morose/Documents/workspace-SpringBoot/chapter-10 )2019 -03 -19  11 :04 :31.536   INF O 2807  --- [main] c.j.l.s.chapter10.Chapter10Application   : No active profile set, falling back to default profiles: default2019 -03 -19  11 :04 :32.588   INF O 2807  --- [main] o.s.b.w.embedded.tomcat.TomcatWebServer  : Tomcat initialized with port(s): 8080  (http)2019 -03 -19  11 :04 :32.625   INF O 2807  --- [main] o.apache.catalina.core.StandardService   : Starting service [Tomcat]2019 -03 -19  11 :04 :32.626   INF O 2807  --- [main] org.apache.catalina.core.StandardEngine  : Starting Servlet engine: [Apache Tomcat/9.0 .16 ]2019 -03 -19  11 :04 :32.638   INF O 2807  --- [main] o.a.catalina.core.AprLifecycleListener   : The APR based Apache Tomcat Native library which allows optimal performance in  production environments was not found on the java.library.path: [/Users/morose/Library/Java/Extensions:/Library/Java/Extensions:/Network/Library/Java/Extensions:/System/Library/Java/Extensions:/usr/lib/java:.]2019 -03 -19  11 :04 :32.751   INF O 2807  --- [main] o.a.c.c.C.[Tomcat].[localhost].[/]       : Initializing Spring embedded WebApplicationContext2019 -03 -19  11 :04 :32.751   INF O 2807  --- [main] o.s.web.context.ContextLoader            : Root WebApplicationContext: initialization completed in  1150  ms2019 -03 -19  11 :04 :33.027   INF O 2807  --- [main] o.s.s.concurrent.ThreadPoolTaskExecutor  : Initializing ExecutorService 'applicationTaskExecutor'2019 -03 -19  11 :04 :33.281   INF O 2807  --- [main] o.s.b.w.embedded.tomcat.TomcatWebServer  : Tomcat started  on port(s): 8080  (http) with context path ''2019 -03 -19  11 :04 :33.284   INF O 2807  --- [main] c.j.l.s.chapter10.Chapter10Application   : Started  Chapter10Application in  2.061  seconds (JVM running for 2.486 )2019 -03 -19  11 :04 :43.352   INF O 2807  --- [http-nio-8080 -exec-1 ] o.a.c.c.C.[Tomcat].[localhost].[/]       : Initializing Spring DispatcherServlet 'dispatcherServlet'2019 -03 -19  11 :04 :43.353   INF O 2807  --- [http-nio-8080 -exec-1 ] o.s.web.servlet.DispatcherServlet        : Initializing Servlet 'dispatcherServlet'2019 -03 -19  11 :04 :43.359   INF O 2807  --- [http-nio-8080 -exec-1 ] o.s.web.servlet.DispatcherServlet        : Completed initialization in  6  ms2019 -03 -19  11 :04 :43.392   INF O 2807  --- [http-nio-8080 -exec-1 ] c.j.l.s.c.c.LoggerDemoController         : inf o(訊息):123 2019 -03 -19  11 :04 :43.394   WARN 2807  --- [http-nio-8080 -exec-1 ] c.j.l.s.c.c.LoggerDemoController         : warn(警告):123 2019 -03 -19  11 :04 :43.395  ERROR 2807  --- [http-nio-8080 -exec-1 ] c.j.l.s.c.c.LoggerDemoController         : error(錯誤):123 2019 -03 -19  11 :04 :43.395  ERROR 2807  --- [http-nio-8080 -exec-1 ] c.j.l.s.c.c.LoggerDemoController         : fatal(致命):123 
 
 
級別控制 在Spring Boot中只需要在application.properties中進行配置完成日誌記錄的級別控制。
配置格式:logging.level.*=LEVEL
logging.level:日誌級別控制前綴,*為包名或Logger名 LEVEL:選項TRACE, DEBUG, INFO, WARN, ERROR, FATAL, OFF 舉例:
com.jj.learning.springboot.chapter10.controller logging.level.com.jj=DEBUG:com.jj包下所有class以DEBUG級別輸出 logging.level.root=WARN:root日誌以WARN級別輸出
修改 application.properties 
 
1 2 3 4 logging.level.root=WARN logging.level.com.jj=DEBUG 
 
1 2 3 4 5 6 7 8 9 10 11 12   .   ____          _            __ _ _  /\\ / ___'_ __ _ _(_)_ __  __ _ \ \ \ \ ( ( )\___ | '_ | '_| | '_ \/ _` | \ \ \ \  \\/  ___)| |_)| | | | | || (_| |  ) ) ) )   '  |____| .__|_| |_|_| |_\__, | / / / /  =========|_|==============|___/=/_/_/_/  :: Spring Boot ::        (v2.1.3 .RELEASE) 2019 -03 -19  10 :54 :01.433   INF O 2783  --- [           main] c.j.l.s.chapter10.Chapter10Application   : Starting Chapter10Application on localhost with PID 2783  (/Users/morose/Documents/workspace-SpringBoot/chapter-10 /target/classes started  by morose in  /Users/morose/Documents/workspace-SpringBoot/chapter-10 )2019 -03 -19  10 :54 :01.435  DEBUG 2783  --- [           main] c.j.l.s.chapter10.Chapter10Application   : Running with Spring Boot v2.1.3 .RELEASE, Spring v5.1.5 .RELEASE2019 -03 -19  10 :54 :01.436   INF O 2783  --- [           main] c.j.l.s.chapter10.Chapter10Application   : No active profile set, falling back to default profiles: default2019 -03 -19  10 :54 :03.184   INF O 2783  --- [           main] c.j.l.s.chapter10.Chapter10Application   : Started  Chapter10Application in  2.15  seconds (JVM running for 2.579 )
 
1 2 3 4 5 2019 -03 -19  10 :56 :54.537  DEBUG 2783  --- [nio-8080 -exec-1 ] c.j.l.s.c.c.LoggerDemoController         : debug(調試):123 2019 -03 -19  10 :56 :54.539   INF O 2783  --- [nio-8080 -exec-1 ] c.j.l.s.c.c.LoggerDemoController         : inf o(訊息):123 2019 -03 -19  10 :56 :54.539   WARN 2783  --- [nio-8080 -exec-1 ] c.j.l.s.c.c.LoggerDemoController         : warn(警告):123 2019 -03 -19  10 :56 :54.539  ERROR 2783  --- [nio-8080 -exec-1 ] c.j.l.s.c.c.LoggerDemoController         : error(錯誤):123 2019 -03 -19  10 :56 :54.539  ERROR 2783  --- [nio-8080 -exec-1 ] c.j.l.s.c.c.LoggerDemoController         : fatal(致命):123 
 
可以看到日誌輸出的等級為包含Debug以上的日誌
 
 
自定義日誌配置 由於日誌服務一般都在ApplicationContext建立前就初始化了,它並不是必須通過Spring的配置文件控制。因此通過系統屬性和傳統的Spring Boot外部配置文件依然可以很好的支持日誌控制和管理。
根據不同的日誌系統,你可以按如下規則組織配置文件名,就能被正確加載:
Logback:logback-spring.xml, logback-spring.groovy, logback.xml, logback.groovy 
Log4j:log4j-spring.properties, log4j-spring.xml, log4j.properties, log4j.xml 
Log4j2:log4j2-spring.xml, log4j2.xml 
JDK (Java Util Logging):logging.properties 
 
Spring Boot官方推薦優先使用帶有-spring的文件名作為你的日誌配置(如使用logback-spring.xml,而不是logback.xml)
 
自定義輸出格式 在Spring Boot中可以通過在application.properties配置如下參數控制輸出格式:
logging.pattern.console:定義輸出到控制台的樣式(不支持JDK Logger) 
logging.pattern.file:定義輸出到文件的樣式(不支持JDK Logger) 
 
註:以上參考了程序猿DD-翟永超  的 Spring Boot日志管理  文章。