0


Spring Boot 日志配置(Slf4j)

SLF4J与Logback简介

Java日志框架众多,常用的有java.util.logging, log4j, logback,commons-logging等。

SLF4J (Simple Logging Facade For Java),它是一个针对于各类Java日志框架的统一Facade抽象。SLF4J定义了统一的日志抽象接口,而真正的日志实现则是在运行时决定。

LogBack是由log4j的创始人开发的新一代日志框架,用于替代log4j。它效率更高、能够适应诸多的运行环境。LogBack的架构设计足够通用,可适用于不同的环境。目前LogBack分为三个模:lobback-core,logback-classic和logback-access。core模块是其它两个模块的基础,classic是core的扩展,是log4j巨大改进的版本。

LogBack-classic本身实现了SL4J的API,因此可以很容易的在logback与其它日志系统之间转换,例如log4j、JDK1.4中的java.util.logging(JUL)。

第三个模块access,它集成了Servlet容器,提供了通过HTTP访问日志的功能,若了解access可访问文档: http://logback.qos.ch/access.html。

LogBack的日志级别有trace、debug、info、warn、error,级别排序为: TRACE < DEBUG < INFO < WARN < ERROR。关于日志级别详细信息,可参考官方文档: http://logback.qos.ch/manual/architecture.html。

默认配置

Logback

默认情况下,Spring Boot会用Logback来记录日志,并用INFO级别输出到控制台。

日志输出内容元素具体如下:

  • 时间日期:精确到毫秒
  • 日志级别:ERROR, WARN, INFO, DEBUG or TRACE
  • 进程ID
  • 分隔符:--- 标识实际日志的开始
  • 线程名:方括号括起来(可能会截断控制台输出)
  • Logger名:通常使用源代码的类名
  • 日志内容

Logback默认配置

<included>
<include resource="org/springframework/boot/logging/logback/defaults.xml" />
<property name="LOG_FILE" value="${LOG_FILE:-${LOG_PATH:-${LOG_TEMP:-${java.io.tmpdir:-/tmp}}}/spring.log}"/>
<include resource="org/springframework/boot/logging/logback/console-appender.xml" />
<include resource="org/springframework/boot/logging/logback/file-appender.xml" />
<root level="INFO">
<appender-ref ref="CONSOLE" />
<appender-ref ref="FILE" />
</root>
</included>

使用logback.xml配置日志

Spring Boot 提供了一套日志系统,优先选择logback。日志服务一般都在ApplicationContext创建前就初始化了,所以日志配置,可以独立于Spring的配置。我们也可以通过系统属性和传统的Spring Boot外部配置文件,实现日志控制和管理。

根据不同的日志系统,SpringBoot按如下“约定规则”组织配置文件名加载日志配置文件:

日志框架

配置文件

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),命名为logback-spring.xml的日志配置文件,spring boot可以为它添加一些spring boot特有的配置项。

logback-base.xml 配置解析

  1. <appender name="STDOUT" class="ch.qos.logback.core.ConsoleAppender">
  2. <encoder>
  3. <pattern>%d %p (%file:%line)- %m%n</pattern>
  4. <charset>UTF-8</charset>
  5. </encoder>
  6. </appender>
  7. <appender name="syslog"
  8. class="ch.qos.logback.core.rolling.RollingFileAppender">
  9. <File>log/sys.log</File>
  10. <rollingPolicy class="ch.qos.logback.core.rolling.TimeBasedRollingPolicy">
  11. <fileNamePattern>log/sys.%d.%i.log</fileNamePattern>
  12. <maxHistory>30</maxHistory>
  13. <timeBasedFileNamingAndTriggeringPolicy class="ch.qos.logback.core.rolling.SizeAndTimeBasedFNATP">
  14. <maxFileSize>1KB</maxFileSize>
  15. </timeBasedFileNamingAndTriggeringPolicy>
  16. </rollingPolicy>
  17. <encoder>
  18. <pattern>
  19. %d %p (%file:%line)- %m%n
  20. </pattern>
  21. <charset>UTF-8</charset>
  22. </encoder>
  23. </appender>
  24. <root level="info">
  25. <appender-ref ref="STDOUT" />
  26. </root>
  27. <logger name="com.appleyk" level="DEBUG">
  28. <appender-ref ref="syslog" />
  29. </logger>

logback-spring.xml解析

<?xml version="1.0" encoding="UTF-8"?>
<!--
~ Copyright (C) 2018 Baidu, Inc. All Rights Reserved.
-->
<configuration debug="true">

<include resource="logback-base.xml"/>

</configuration>
标签: spring boot java spring

本文转载自: https://blog.csdn.net/Kingairy/article/details/130968055
版权归原作者 Kingairy 所有, 如有侵权,请联系我们删除。

“Spring Boot 日志配置(Slf4j)”的评论:

还没有评论