自从 log4j 爆出史诗级漏洞后,使用日志系统都得谨慎着选了。保守起见选择使用 logback 作为日志组件。logback 在Spring Boot 内部已经引入,所以无需在增加 pom 依赖。

logback-spring.xml

在 resources 目录下,新建 logback-spring.xml,下面给出一个我自己使用的模板,可以根据自己的需求修改其中的内容。

<?xml version="1.0" encoding="utf-8"?>
<configuration>
  <!-- 全局变量 -->
  <property name="FILE_LOG_PATTERN" value="%d{yyyy-MM-dd HH:mm:ss.SSS} [%thread] %-5level %logger{50} - %msg %n"/>

  <!-- 控制台输出 -->
  <appender name="CONSOLE" class="ch.qos.logback.core.ConsoleAppender">
    <encoder class="ch.qos.logback.classic.encoder.PatternLayoutEncoder">
      <pattern>${FILE_LOG_PATTERN}</pattern>
      <charset>UTF-8</charset>
    </encoder>
  </appender>

  <!-- 文件输出 -->
  <appender name="FILE" class="ch.qos.logback.core.rolling.RollingFileAppender">
    <rollingPolicy class="ch.qos.logback.core.rolling.SizeAndTimeBasedRollingPolicy">
      <fileNamePattern>log/app.%d.%i.log</fileNamePattern>
      <totalSizeCap>1GB</totalSizeCap>
      <maxHistory>30</maxHistory>
      <maxFileSize>15MB</maxFileSize>
    </rollingPolicy>
    <encoder>
      <pattern>${FILE_LOG_PATTERN}</pattern>
      <charset>UTF-8</charset>
    </encoder>
  </appender>

  <root level="INFO">
    <appender-ref ref="CONSOLE"/>
  </root>

  <logger name="com.jeffrey.springboottea" level="INFO">
    <appender-ref ref="FILE"/>
  </logger>
</configuration>

使用

logback 使用时可以配合 lombok 的 @Slf4j 注解使用,直接调用 log.info() 或 log.error() 即可。

log.info("info test");

标题:Spring Boot构建Web API Wheel(七)—— 日志处理
作者:Jeffrey