> 文档中心 > SpringBoot日志管理

SpringBoot日志管理


SpringBoot-----SpringBoot日志管理

文章目录

  • 🔥 一、Logback配置
  • 🔥 二、log4j2安全漏洞

SpringBoot日志管理

🔥 一、Logback配置

SpringBoot默认使用Logback组件作为日志管理。Logback是log4j创始人设计的一个开源日志组件。在SpringBoot项目中我们不需要额外的添加Logback的依赖,因为在spring-boot-parent中已经包含了Logback的依赖。

在SpringBoot中,Logback默认配置文件是/resources/logback.xml和/resources/logback-test.xml

1、在/resources下添加Logback配置文件logback.xml

 <configuration>  <property name="LOG_HOME" value="${catalina.base}/logs/"/>  <appender name="Stdout" class="ch.qos.logback.core.ConsoleAppender">          <layout class="ch.qos.logback.classic.PatternLayout">    <pattern>%d{MM-dd HH:mm:ss.SSS} [%thread] %-5level %logger{50} - %msg%n  </pattern>     </layout> </appender>  <appender name="RollingFile" class="ch.qos.logback.core.rolling.RollingFileAppender">     <rollingPolicy class="ch.qos.logback.core.rolling.TimeBasedRollingPolicy">    <FileNamePattern>${LOG_HOME}/server.%d{yy99-MM-dd}.log</FileNamePattern>  <MaxHistory>30</MaxHistory>     </rollingPolicy>     <layout class="ch.qos.logback.classic.PatternLayout">    <pattern>%d{HH:mm:ss.SSS} [%thread] %-5level %logger{50} - %msg%n  </pattern>     </layout>          <triggeringPolicy class="ch.qos.logback.core.rolling.SizeBasedTriggeringPolicy">  <MaxFileSize>10MB</MaxFileSize>     </triggeringPolicy> </appender>  <root level="info">     <appender-ref ref="Stdout"/>     <appender-ref ref="RollingFile"/> </root>    </configuration>

2、在代码中打印日志

package com.example.demo.wr.oyc.controller;import org.slf4j.Logger;import org.slf4j.LoggerFactory;import org.springframework.stereotype.Controller;import org.springframework.web.bind.annotation.RequestMapping;import org.springframework.web.bind.annotation.ResponseBody;@Controllerpublic class LogbackController {    private final static Logger logger = LoggerFactory.getLogger(LogbackController.class);    @RequestMapping("/printLog")    @ResponseBody    public String showInfo() { logger.info("记录日志"); return "Hello Logback";    }}

3、如果日志过多,可以屏蔽一些包的日志,在配置文件中配置

SpringBoot日志管理

SpringBoot日志管理)

🔥 二、log4j2安全漏洞

在2021年12月,Log4j2爆出了极其严重的安全漏洞,攻击者可以让记录的日志包含指定字符串,从而执行任意程序。很多大型网站,如百度等都是此次Log4j漏洞的受害者,很多互联网企业连夜做了应急措施。

Log4j2.0到2.14.1全部存在此漏洞,危害范围极其广泛,Log4j2.15.0-rc1中修复了这个 bug。

因Log4j2漏洞的反复无常,导致某些公司已经切换到Logback来记录日志,但在Log4j2漏洞爆出后,Logback也爆出漏洞:在Logback1.2.7及之前的版本中,具有编辑配置文件权限的攻击者可以制作恶意配置,允许从LDAP服务器加载、执行任意代码。

解决方案为将Logback升级到安全版本:Logback1.2.9+

SpringBoot2.6.2以上的Logback版本已经升到了1.2.9,Log4j2的版本也升到了2.17.0,所以我们使用SpringBoot2.6.2以上版本无需担心Log4j2和Logback安全漏洞。

SpringBoot日志管理

✨脚踏实地,一步一步,总能成功✨