搜索
您的当前位置:首页正文

springbootLogging的配置以及使用详解

来源:知库网
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.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: [/*] 以下项将会被输出:

1、⽇期和时间--精确到毫秒,并按照时间进⾏简单的排序2、⽇志级别--ERROR,WARN,INFO,DEBUG,TRACE3、进程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.filelogging.pathExample说明

my.log

⼆者都不配置,则只输出到Console

写⼊指定的⽇志⽂件。⽂件名可以是⼀个确切的位置或相对⽬录

将⽇志⽂件写⼊指定的⽬录,⽬录可以是⼀个确切的位置或者是⼀个相对⽬录

指定⽂件

指定的⽬录/var/log

默认情况下,如果⽇志⽂件的⼤⼩达到10Mb的话,就会被截断,输出到新的⽇志⽂件中。

注意:⽇志的配置是独⽴与实际的⽇志组件的,也就是说,如果为Logback指定配置的属性为logback.configurationFile,那么spring boot将不会管理该⽇志组件。四、⽇志级别

所有⽀持的⽇志系统都可以通过Spring Environment来指定⽇志级别,例如application.properties,可以使

⽤“logging.level.*=LEVEL”来指定⽇志的级别,\"LEVEL\"的取值可以是TRACE, DEBUG, INFO, WARN, ERROR, FATAL,OFF。配置⽰例如下:

logging.level.root=WARN #root⽇志以WARN级别输出

logging.level.org.springframework.web=DEBUG #org.springframework.web包下的⽇志以DEBUG级别输出 logging.level.org.hibernate=ERROR #org.hibernate包下的⽇志以ERROR级别输出

如果,我们需要指定我们的应⽤⽇志级别了,我们也可以使⽤同样的⽅式,如下:

logging.level.com.chhliu=INFO

上⾯配置中的\"com.chhliu\"为我们应⽤的包名。五、⾃定义⽇志输出格式

我们可以通过logging.pattern.file以及logging.pattern.level来配置我们需要的⽇志输出格式,例如:

logging.pattern.console=%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,如下:

org.springframework.boot spring-boot-starter

org.springframework.boot spring-boot-starter-logging

org.springframework.boot spring-boot-starter-log4j

以上就是本⽂的全部内容,希望对⼤家的学习有所帮助,也希望⼤家多多⽀持。

因篇幅问题不能全部显示,请点此查看更多更全内容

Top