springbootLogging的配置以及使⽤详解
前⾔:该篇⽂章基本上是翻译的官⽅⽂档!
spring boot使⽤Commons Logging作为内部的⽇志系统,并且给Java Util Logging,Log4J2以及Logback都提供了默认的配置。如果使⽤了spring boot的Starters,那么默认会使⽤Logback⽤于记录⽇志。
⼀、Log format
spring boot中默认的⽇志输出格式如下:
2014-03-05 10:57:51.112 INFO 45469 --- [ main] org.StandardEngine :
Starting Servlet Engine: Apache Tomcat/7.0.52
2014-03-05 10:57:51.253 INFO 45469 --- [ost-startStop-1] C.[Tomcat].[localhost].[/] :
Initializing Spring embedded WebApplicationContext
2014-03-05 10:57:51.253 INFO 45469 --- [ost-startStop-1] o.t.ContextLoader :
Root WebApplicationContext: initialization completed in 1358 ms
2014-03-05 10:57:51.698 INFO 45469 --- [ost-startStop-1] o.ServletRegistrationBean :
Mapping servlet: 'dispatcherServlet' to [/]
2014-03-05 10:57:51.702 INFO 45469 --- [ost-startStop-1] o.bedded.FilterRegistrationBean :
Mapping filter: 'hiddenHttpMethodFilter' to: [/*]
以下项将会被输出:
1、⽇期和时间--精确到毫秒,并按照时间进⾏简单的排序
2、⽇志级别--ERROR,WARN,INFO,DEBUG,TRACE
3、进程ID号
4、⽇志内容,⽤"---"分隔符分开
5、线程名字--括在⽅括号中
6、⽇志的名字--通常对应的是类名
注意:Logback没有FATAL级别(映射到ERROR)
⼆、控制台输出
默认的⽇志配置将在写⼊控制台时回显消息,默认会回显ERROR,WARN,和INFO级别的消息,你同样可以在启动的时候,启⽤debug模式,启动命令如下:java -jar yourapp.jar --debug
注意:你同样可以在application.properties配置⽂件中指定debug=true,来开启debug,模式⼀旦开启了debug模式,那么控制台同时会输出容器信息,hibernate信息和spring boot的信息
三、⽂件输出
默认情况下,spring boot只会将⽇志输出到console,⽽不会输出到⽇志⽂件中,如果你想将⽇志写到⽇志⽂件中,那么需要在application.properties配置⽂件中设置logging.file或者是logging.path
注意:此处是或者的关系,也就是说,你配置logging.file或者是logging.path,效果是⼀样的。
下⾯的表格将显⽰如何进⾏配置⽂件输出:
logging.file logging.path Example说明
⼆者都不配置,则只输出到Console
指定⽂件my.log 写⼊指定的⽇志⽂件。⽂件名可以是⼀个确切的位置或相对⽬录
指定的⽬录/var/log将⽇志⽂件写⼊指定的⽬录,⽬录可以是⼀个确切
的位置或者是⼀个相对⽬录
默认情况下,如果⽇志⽂件的⼤⼩达到10Mb的话,就会被截断,输出到新的⽇志⽂件中。
注意:⽇志的配置是独⽴与实际的⽇志组件的,也就是说,如果为Logback指定配置的属性为figurationFile,那么spring boot将不会管理该⽇志组件。
四、⽇志级别
所有⽀持的⽇志系统都可以通过Spring Environment来指定⽇志级别,例如application.properties,可以使
⽤“logging.level.*=LEVEL”来指定⽇志的级别,"LEVEL"的取值可以是TRACE, DEBUG, INFO, WARN, ERROR, FATAL, OFF。配置⽰例如下:
springboot切换log4j2=WARN #root⽇志以WARN级别输出
springframework.web=DEBUG #org.springframework.web包下的⽇志以DEBUG级别输出
hibernate=ERROR #org.hibernate包下的⽇志以ERROR级别输出
如果,我们需要指定我们的应⽤⽇志级别了,我们也可以使⽤同样的⽅式,如下:
logging.level.chhliu=INFO
上⾯配置中的"com.chhliu"为我们应⽤的包名。
五、⾃定义⽇志输出格式
我们可以通过logging.pattern.file以及logging.pattern.level来配置我们需要的⽇志输出格式,例如:
sole=%d{yyyy/MM/dd-HH:mm:ss} [%thread] %-5level %logger- %msg%n
logging.pattern.file=%d{yyyy/MM/dd-HH:mm} [%thread] %-5level %logger- %msg%n
注意:以上配置,只对Logback起作⽤
六、使⽤Log4j打⽇志
前⾯说道,我们默认的是使⽤Logback来作为⽇志系统的,那么,如果我们想使⽤Log4j来打⽇志,怎么办了,我们需要在pom⽂件中加上Log4j的starter同时排除Logback,如下:
<dependency>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-starter</artifactId>
<exclusions>
<exclusion>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-starter-logging</artifactId>
</exclusion>
</exclusions>
</dependency>
<dependency>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-starter-log4j</artifactId>
</dependency>
以上就是本⽂的全部内容,希望对⼤家的学习有所帮助,也希望⼤家多多⽀持。
版权声明:本站内容均来自互联网,仅供演示用,请勿用于商业和其他非法用途。如果侵犯了您的权益请与我们联系QQ:729038198,我们将在24小时内删除。
发表评论