spring boot Logging的配置以及使用详解

 更新时间:2018年01月26日 16:27:10   作者:牛奋lch  
这篇文章主要介绍了spring boot Logging的配置以及使用详解,小编觉得挺不错的,现在分享给大家,也给大家做个参考。一起跟随小编过来看看吧

前言:该篇文章基本上是翻译的官方文档!

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,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指定配置的属性为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,如下:

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

以上就是本文的全部内容,希望对大家的学习有所帮助,也希望大家多多支持脚本之家。

相关文章

  • Java魔法值处理的四种方式

    Java魔法值处理的四种方式

    这篇文章主要介绍了Java魔法值处理的四种方式,具有很好的参考价值,希望对大家有所帮助,如有错误或未考虑完全的地方,望不吝赐教
    2023-11-11
  • java中字符串替换常用的4种方法

    java中字符串替换常用的4种方法

    在Java中String类提供了许多方便的方法来处理字符串,下面这篇文章主要给大家介绍了关于java中字符串替换常用的4种方法,文中通过代码介绍的非常详细,需要的朋友可以参考下
    2024-03-03
  • Java 中的CharArrayReader 介绍_动力节点Java学院整理

    Java 中的CharArrayReader 介绍_动力节点Java学院整理

    CharArrayReader 是字符数组输入流。它和ByteArrayInputStream类似,只不过ByteArrayInputStream是字节数组输入流,而CharArray是字符数组输入流。CharArrayReader 是用于读取字符数组,它继承于Reader
    2017-05-05
  • Java将json字符串转换为数组的几种方法

    Java将json字符串转换为数组的几种方法

    在Java开发中,经常会遇到将json字符串转换为数组的需求,本文主要介绍了Java将json字符串转换为数组的几种方法,具有一定的参考价值,感兴趣的可以了解一下
    2024-01-01
  • 基于Jasypt对SpringBoot配置文件加密

    基于Jasypt对SpringBoot配置文件加密

    这篇文章主要介绍了基于Jasypt对SpringBoot配置文件加密,文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的参考学习价值,需要的朋友可以参考下
    2019-11-11
  • 详解springboot之jackson的两种配置方式

    详解springboot之jackson的两种配置方式

    这篇文章主要介绍了详解springboot之jackson的两种配置方式,小编觉得挺不错的,现在分享给大家,也给大家做个参考。一起跟随小编过来看看吧
    2018-11-11
  • 在SpringBoot中,如何使用Netty实现远程调用方法总结

    在SpringBoot中,如何使用Netty实现远程调用方法总结

    我们在进行网络连接的时候,建立套接字连接是一个非常消耗性能的事情,特别是在分布式的情况下,用线程池去保持多个客户端连接,是一种非常消耗线程的行为.那么我们该通过什么技术去解决上述的问题呢,那么就不得不提一个网络连接的利器——Netty,需要的朋友可以参考下
    2021-06-06
  • Sharding Jdbc批量操作引发fullGC解决

    Sharding Jdbc批量操作引发fullGC解决

    这篇文章主要为大家介绍了Sharding Jdbc批量操作引发fullGC解决,有需要的朋友可以借鉴参考下,希望能够有所帮助,祝大家多多进步,早日升职加薪
    2022-11-11
  • IDEA查看Scala的源码的教程图解

    IDEA查看Scala的源码的教程图解

    这篇文章主要介绍了IDEA查看Scala的源码的方法,本文通过图文并茂的形式给大家介绍的非常详细,对大家的学习或工作具有一定的参考借鉴价值,需要的朋友可以参考下
    2020-08-08
  • springboot中使用Hibernate-Validation校验参数详解

    springboot中使用Hibernate-Validation校验参数详解

    这篇文章主要为大家介绍了springboot中使用Hibernate-Validation校验参数详解,有需要的朋友可以借鉴参考下,希望能够有所帮助,祝大家多多进步,早日升职加薪
    2023-07-07

最新评论