SpringBoot日志管理
SpringBoot-----SpringBoot日志管理
文章目录
- 🔥 一、Logback配置
- 🔥 二、log4j2安全漏洞
🔥 一、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、如果日志过多,可以屏蔽一些包的日志,在配置文件中配置
)
🔥 二、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安全漏洞。
✨脚踏实地,一步一步,总能成功✨