

Spring Boot 2.x基础教程:使用Log4j2记录日志
source link: https://blog.didispace.com/spring-boot-learning-2-8-2/
Go to the source link to view the article. You can view the picture content, updated content and better typesetting reading experience. If the link is broken, please click the button below to view the snapshot at that time.

Spring Boot 2.x基础教程:使用Log4j2记录日志
上一篇我们介绍了Spring Boot 2.x中默认日志框架Logback的使用。今天继续说说日志,接下来我们要讲是前段时间爆出核弹漏洞的Log4j2。虽然出了漏洞,让很多小伙伴痛苦了1-2周(加班),但不可否认的是Log4j2依然是目前性能最好的日志框架。所以,当Logback性能上无法支撑的时候,替换使用Log4j2还是最为快速便捷的方法。下面,我们就来学习一下如何在Spring Boot 2.x版本中,替换Logback,使用Log4j2记录日志。
动手试一试
这里省略Spring Boot项目的基础创建,如果您还不会可以看本教程的快速入门。
下面的操作你可以基于Spring Boot 2.x中默认日志框架Logback一文的例子继续下去,也可以用任何一个Spring Boot 2.x的项目来尝试。
第一步:在pom.xml
中引入Log4j2的Starter依赖spring-boot-starter-log4j2
,同时排除默认引入的spring-boot-starter-logging
,比如下面这样:
<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>
第二步:在配置文件application.properties
中,通过logging.config
配置指定log4j2的配置文件位置,比如下面这样:
logging.config=classpath:log4j2.xml
第三步:在resource目录下新建log4j2.xml
(这里不绝对,根据第二步中配置的内容来创建),然后加入log4j2的日志配置,比如,下面这样:
<?xml version="1.0" encoding="UTF-8"?>
<Configuration status="INFO">
<Appenders>
<Console name="Console" target="SYSTEM_OUT">
<PatternLayout pattern="%d{HH:mm:ss.SSS} [%t] %-5level %logger{36} - %msg%n"/>
</Console>
</Appenders>
<Loggers>
<Root level="INFO">
<AppenderRef ref="Console"/>
</Root>
</Loggers>
</Configuration>
主要是方便大家理解如何把log4j2引入Spring Boot,对于log4j2如何配置这里不做详细介绍,所以这里就放个简单配置让程序跑起来即可。如果想深入了解log4j2的配置,可以点击这里查看
OK,到这里整合过程就结束了。是不是很简单呢?如果您学习过程中如遇困难?可以加入我们超高质量的Spring技术交流群,参与交流与讨论,更好的学习与进步!更多Spring Boot教程可以点击直达!,欢迎收藏与转发支持!
可能有小伙伴会问,之前不是推荐大家用Slf4j来记录日志,隔离了具体实现的日志框架么?那我怎么知道这一顿操作之后,真的已经用上Log4j2了呢?
这个其实很好判断,大家只需要在用到日志的地方,加个端点,Debug跑起来,观察下log对象就可以了,比如:
下面这个是使用默认Logback的情况:
使用Logback
下面这个是使用Log4j2的情况
使用Log4j2
最后,因为之前Log4j2有过很大的漏洞问题,大家一定要用最新版本哦!
安全起见,建议您至少要用2.17.0以上的版本(如果用的Spring Boot 2.6.2+,那已经是2.17.0了,不需要担心)。当然,目前最新已经到2.17.1,您也可以自己升级到2.17.1来使用,如何升级呢?还是按照这篇文章介绍的操作即可。
本文的完整工程可以查看下面仓库中2.x
目录下的chapter8-2
工程:
如果您觉得本文不错,欢迎Star
支持,您的关注是我坚持的动力!
Recommend
-
8
讲武德,你们要的高性能日志工具 Log4j2,来了 2020/11/23
-
8
Spring Boot 使用 AOP 记录日志 武培轩 2021年03月01日 20次浏览 在项目开发中经常,日志系统是必不可少的,特别是管理系统,对于重要的操...
-
6
一次鞭辟入里的 Log4j2 日志输出阻塞问题的定位 线上某个应用的某个实例突然出现某些次请求服务响应极慢的情况,有几次请求超过 60s 才返回,并且通过日志发现,服务线程并没有做什么很重的操作。这种情况断断续...
-
9
张哈希apache1天前 线上某个应用的某个实例突然出现某些次请求服务响应极慢的情况,有几次请求超过 60s 才返...
-
4
如何监控 Log4j2 异步日志遇到写入瓶颈在之前的一篇文章中(一次鞭辟入里的 Log4j2 异步日志输出阻塞问题的定位),我们详细分析了一个经典的 Log4j2 异步日志阻塞问题的定位,主要原因还是
-
9
V2EX › Java log4j2 如何设置日志压缩延迟 SimpleSS · 9 小时 25 分钟前 · 1051 次点击
-
4
Log4j2基于Disruptor异步日志优化(部分源码学习)发布于 11 月 26 日 最近遇到了个log4j2写日志导致线程阻塞的问题(多亏了开发小哥日志打的多,不然就没有下面这一...
-
5
Spring Boot在所有内部日志中使用Commons Logging,但是对底层日志的实现是开放的。在Spring Boot生态中,为
-
7
tinylog简介tinylog,与其他各种tiny开头的东西一样,是一个轻量级的开源日志解决方案。它本身只包含两个JAR文件(一个用于API,另一个用于实现),没有任何外部依赖关系。两个JAR文件的总大小只有178KB。...
-
12
hive的log4j2.properties滚动日志设置时间显示格式时日志_江南独孤客的技术博客_51CTO博客日志相关配置如下:# Licensed to the Apache Software Foundation (ASF) under one# or more contributor license agreements. See the NOTICE fi...
About Joyk
Aggregate valuable and interesting links.
Joyk means Joy of geeK