通常情况下,日志框架是由一个抽象层 + 实现层搭建的。SpringBoot日志系统是由SLF4J + logback组成的。
抽象层有:SLF4J、jboss-logging、JCL等; 实现层有:logback、jul、log4j、log4j2等。
SLF4J简介
SLF4J,即简单日志门面(Simple Logging Facade for java),不是具体的日志解决方案,是抽象类,允许最终用户在部署其应用时使用所希望的日志系统。例如,在项目中使用SLF4J记录日志,并且绑定log4j,则日志会以log4j的风格输出;后期想改为logback风格输出日志,则将log4j替换为logback即可,不需要修改项目中的代码。
1、使用slf4j记录日志非常简单,直接使用LoggerFactory创建即可。
import org.slf4j.Logger;
import org.slf4j.LoggerFactory;
@SpringBootApplication
public class SpringbootLogApplication {
private static final Logger logger = LoggerFactory.getLogger(SpringbootLogApplication.class);
public static void main(String[] args) {
SpringApplication.run(SpringbootLogApplication.class, args);
logger.info("开始执行Springboot启动类");
}
}
2、替换springboot默认的logbak系统,使用log4j日志系统。在maven配置文件中排除logbak,并引入log4j即可。
<dependency>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-starter-web</artifactId>
<exclusions>
<exclusion>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-starter-logging</artifactId>
</exclusion>
</exclusions>
</dependency>
<dependency>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-starter-log4j2</artifactId>
</dependency>
3、修改日志文件的输出路径
logging:
file:
path: D:\aaa
参考文章:
1,SpringBoot系列之统一日志处理_jatej-CSDN博客_springboot统一日志
相关事件:
2021年12 月 10 日凌晨,Apache 开源项目 Log4j 的远程代码执行漏洞细节被公开,由于 Log4j 的广泛使用,该漏洞一旦被攻击者利用会造成严重危害。
据悉,Apache Log4j 2.x <= 2.14.1 版本均回会受到影响。根据“微步在线研究响应中心”消息,可能的受影响应用包括但不限于:Spring-Boot-strater-log4j2、Apache Struts2、Apache Solr、Apache Flink、Apache Druid、Elasticsearch、Flume、Dubbo、Redis、Logstash、Kafka 等。很多互联网企业都连夜做了应急措施。