Spring Boot内部日志系统

SpringBoot默认使用CommonsLogging,但支持JavaUtilLogging,Log4J,Log4J2和Logback。默认配置为Logback,提供控制台和文件输出。日志级别可通过logging.level.*设置。使用logging.file或logging.path属性可配置文件输出。可以通过添加特定库并提供配置文件来自定义日志系统。
摘要由CSDN通过智能技术生成

25. 日志

Spring Boot内部日志系统使用的是Commons Logging,但开放底层的日志实现。默认为会Java Util Logging, Log4J, Log4J2Logback提供配置。每种情况下都会预先配置使用控制台输出,也可以使用可选的文件输出。

默认情况下,如果你使用’Starter POMs’,那么就会使用Logback记录日志。为了确保那些使用Java Util Logging, Commons Logging, Log4J或SLF4J的依赖库能够正常工作,正确的Logback路由也被包含进来。

:如果上面的列表看起来令人困惑,不要担心,Java有很多可用的日志框架。通常,你不需要改变日志依赖,Spring Boot默认的就能很好的工作。

25. 日志

Spring Boot内部日志系统使用的是Commons Logging,但开放底层的日志实现。默认为会Java Util Logging, Log4J, Log4J2Logback提供配置。每种情况下都会预先配置使用控制台输出,也可以使用可选的文件输出。

默认情况下,如果你使用’Starter POMs’,那么就会使用Logback记录日志。为了确保那些使用Java Util Logging, Commons Logging, Log4J或SLF4J的依赖库能够正常工作,正确的Logback路由也被包含进来。

:如果上面的列表看起来令人困惑,不要担心,Java有很多可用的日志框架。通常,你不需要改变日志依赖,Spring Boot默认的就能很好的工作。

25.2. 控制台输出

默认的日志配置会在写日志消息时将它们回显到控制台。默认,ERROR, WARN和INFO级别的消息会被记录。可以在启动应用时,通过--debug标识开启控制台的DEBUG级别日志记录。

$ java -jar myapp.jar --debug

如果你的终端支持ANSI,为了增加可读性将会使用彩色的日志输出。你可以设置spring.output.ansi.enabled为一个支持的值来覆盖自动检测。

25.3. 文件输出

默认情况下,Spring Boot只会将日志记录到控制台而不会写进日志文件。如果除了输出到控制台你还想写入到日志文件,那你需要设置logging.filelogging.path属性(例如在你的application.properties中)。

下表显示如何组合使用logging.*

logging.filelogging.path示例描述
(none)(none)只记录到控制台
Specific file(none)my.log写到特定的日志文件里,名称可以是一个精确的位置或相对于当前目录
(none)Specific folder/var/log写到特定文件夹下的spring.log里,名称可以是一个精确的位置或相对于当前目录

日志文件每达到10M就会被轮换(分割),和控制台一样,默认记录ERROR, WARN和INFO级别的信息。

25.4. 日志级别

所有支持的日志系统在Spring的Environment(例如在application.properties里)都有通过’logging.level.*=LEVEL’('LEVEL’是TRACE, DEBUG, INFO, WARN, ERROR, FATAL, OFF中的一个)设置的日志级别。

示例:application.properties

logging.level.org.springframework.web: DEBUG
logging.level.org.hibernate: ERROR

25.5. 自定义日志配置

通过将适当的库添加到classpath,可以激活各种日志系统。然后在classpath的根目录(root)或通过Spring Environment的logging.config属性指定的位置提供一个合适的配置文件来达到进一步的定制(注意由于日志是在ApplicationContext被创建之前初始化的,所以不可能在Spring的@Configuration文件中,通过@PropertySources控制日志。系统属性和平常的Spring Boot外部配置文件能正常工作)。

根据你的日志系统,下面的文件会被加载:

日志系统定制
Logbacklogback.xml
Log4jlog4j.properties或log4j.xml
Log4j2log4j2.xml
JDK (Java Util Logging)logging.properties

为了帮助定制一些其他的属性,从Spring的Envrionment转换到系统属性:

Spring EnvironmentSystem Property评价
logging.fileLOG_FILE如果定义,在默认的日志配置中使用
logging.pathLOG_PATH如果定义,在默认的日志配置中使用
PIDPID当前的处理进程(process)ID(如果能够被发现且还没有作为操作系统环境变量被定义)

所有支持的日志系统在解析它们的配置文件时都能查询系统属性。具体可以参考spring-boot.jar中的默认配置。

:在运行可执行的jar时,Java Util Logging有类加载问题,我们建议你尽可能避免使用它。

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

程序员柳

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值