Springboot 配置 log4j2 时的注意事项

感谢博主 https://www.cnblogs.com/fishlittle/p/17950944

依赖

  1. SpringBoot 的 spring-boot-starter/ spring-boot-starter-web 自带的是 logback 日志,若要使用 log4j2 日志,需要引入对应依赖。
  2. logback 日志和 log4j2 日志都是对 slf4j 门面的实现,只能存在一个,且必须存在一个,不存在或者存在多个都会出错。
  3. 因此,在使用 log4j2 日志时,必须要在依赖中把 logback 给 exclude 掉。 并且,使用 log4j2 日志还需要适配器 log4j-slf4j-impl,它跟 SpringBoot 的 starter 自带的 log4j-to-slf4j 是相互冲突的,因此还需要将 log4j-to-slf4j 也 exclude 掉。
  4. 因为 SpringBoot 的 starter 中已经带有 slf4j 门面了,因此无需再引入 slf4j 依赖。

这里推荐 idea 的maven 面板工具,在Dependencies 里能查看jar 间的依赖关系,很不错。

因为 2 的原因,故 springboot-starter 的依赖需要剔除 自身 logback :

<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>

注意:很多第三方库中也会包含 logback ,所以也需要剔除。比如 jxls

<dependency><groupId>org.jxls</groupId><artifactId>jxls</artifactId><exclusions><exclusion><groupId>ch.qos.logback</groupId><artifactId>logback-core</artifactId></exclusion></exclusions></dependency>

log4j2.xml(resources目录下)

<?xml version="1.0" encoding="UTF-8"?>
<!--日志级别以及优先级排序: OFF > FATAL > ERROR > WARN > INFO > DEBUG > TRACE > ALL -->
<!-- Configuration 后面的 status 用于设置 log4j2 自身内部的信息输出,可以不设置,当设置成 trace 时,可以看到 log4j2 内部各种详细输出-->
<configuration status="INFO"><!--先定义所有的 appender--><appenders><!--输出日志信息到控制台--><console name="Console" target="SYSTEM_OUT"><!--控制日志输出的格式--><PatternLayout pattern="%d{yyyy-MM-dd HH:mm:ss.SSS} [%t] %-5level %logger{36} - %msg%n"/></console></appenders><!--然后定义 logger,只有定义了 logger 并引入的 appender,appender 才会生效--><!--root:用于指定项目的根日志,如果没有单独指定 Logger,则会使用 root 作为默认的日志输出--><loggers><root level="info"><appender-ref ref="Console"/></root></loggers>
</configuration>

Springboot 的日志配置

logging:config: classpath:log4j2.xml

ok 了。

测试

@RestController
public class DemoController {private final Logger logger = LoggerFactory.getLogger(DemoController.class);@GetMapping("/test")public String test(@RequestParam String name){logger.info(name);return name;}}

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/diannao/45459.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

寻找赛灵思IP核手册的办法

一、先google找到大家看的手册都是什么样的 二、在AMD技术手册网站搜索手册的名称 网址&#xff1a;AMD Technical Information Portal

数据湖仓一体(六)安装flink

上传安装包到/opt/software目录并解压 [bigdata@node106 software]$ tar -zxvf flink-1.17.2-bin-scala_2.12.tgz -C /opt/services/ 重命名文件 [bigdata@node106 services]$ mv flink-1.17.2-bin-scala_2.12 flink-1.17.2 配置环境变量 [bigdata@node106 ~]$ sudo vim /…

数据守卫者:sklearn中的异常点检测技术

数据守卫者&#xff1a;sklearn中的异常点检测技术 在数据分析和机器学习中&#xff0c;异常点&#xff08;也称为离群点&#xff09;是指那些不符合数据集其余部分的模式或行为的点。异常点检测是识别这些异常值的过程&#xff0c;它对于确保数据质量和提高模型性能至关重要。…

Docker 安装字体文件

由于 Docker 容器的隔离性&#xff0c;与宿主机是独立的运行环境&#xff0c;如果需要用到宿主机的字体文件就需要进行安装。 例如在导出 PDF 文件时&#xff0c;如果缺少字体文件&#xff0c;就会产生乱码&#xff08;常表现为中文变成方框&#xff09;。 Docker 字体文件的安…

国密证书(gmssl)在Kylin Server V10下安装

1.查看操作系统信息 [root@localhost ~]# cat /etc/.kyinfo [dist] name=Kylin milestone=Server-V10-GFB-Release-ZF9_01-2204-Build03 arch=arm64 beta=False time=2023-01-09 11:04:36 dist_id=Kylin-Server-V10-GFB-Release-ZF9_01-2204-Build03-arm64-2023-01-09 11:04:…

科普文:spring boot中常用的接口、工具栏、注解整理

1.springboot 常用接口 1.1 Aware接口 Spring IOC容器中 Bean是感知不到容器的存在&#xff0c;Aware(意识到的)接口就是帮助Bean感知到IOC容器的存在&#xff0c;即获取当前Bean对应的Spring的一些组件&#xff0c;如当前Bean对应的ApplicationContext等。 1.1.1 Applicati…

python如何进行pip换源

hello&#xff0c;大家好&#xff0c;我是一名测试开发工程师&#xff0c;至今已在自动化测试领域深耕9个年头&#xff0c;现已将本人实战多年的多终端自动化测试框架【wyTest】开源啦&#xff0c;请大家快来体验并关注我吧。 Python的包管理工具pip是开发者必备的利器之一。然…

企业公司网站建站自适应网站源码系统 前后端分离 带完整的源代码包以及搭建部署教程

系统概述 在数字化转型的浪潮中&#xff0c;企业网站已成为展示品牌形象、吸引潜在客户、促进业务交流的重要窗口。为了满足企业对于高效、灵活、易维护网站建设的迫切需求&#xff0c;小编给大家分享一款集先进技术与人性化设计于一体的“企业公司网站建站自适应网站源码系统…

Windows 如何安装和卸载 OneDrive?具体方法总结

卸载 OneDrive 有人想问 OneDrive 可以卸载吗&#xff1f;如果你不使用当然可以卸载&#xff0c;下面是安装和卸载 OneDrive 中的卸载应用具体操作步骤&#xff1a; 卸载 OneDrive 我们可以从设置面板中的应用选项进行卸载&#xff0c;打开设置面板之后选择应用&#xff0c;然…

vue3+springboot+mybatis+mysql项目实践--简单登录注册功能实现

这里是一次对vue3springbootmybatismysql的项目实现&#xff0c;简单实现前后端分离的登录注册功能&#xff0c;主要工具&#xff1a;idea,navicat 目录 一、创建vue3项目并初始配置 创建vue3项目 2.修改项目结构 1&#xff09;原始目录结构 2&#xff09;修改后目录结构 …

【区块链 + 智慧政务】都江堰区块链公共服务应用平台 | FISCO BCOS应用案例

都江堰区块链公共服务应用平台是四川开源观科技有限公司运用 FISCO BCOS 区块链技术为都江堰市建设的市级 区块链节点平台&#xff0c;该平台上线运营一年以来已在政务服务、社区养老和慈善公益领域落地 3 个应用&#xff0c;上链数据超 过 30 万条。 区块链 政务服务应用&am…

RFID技术简介

1.RFID&#xff08;无线射频设别技术&#xff09;介绍 &#xff08;1&#xff09;RFID是一种通信技术&#xff0c;通过无线电讯号耦合识别特点目标并读写相关数据。 &#xff08;2&#xff09;类型 &#xff08;3&#xff09;应用 智慧仓库&#xff0c;AGV&#xff0c;ETC …

自动驾驶中,实现三维点旋转原理

文章目录 1. 三维点旋转的方案2. 使用复数表示二维点的旋转2.1. 复数的概念2.2. 复数的三种形式及相互转换2.3. 复数概念扩展&#xff1a;实数、虚数、复数 3. 四元数旋转三维点原理4. 使用四元数进行旋转的公式5. 旋转叠加6. 四元数转换为三维点7. 代码实现 1. 三维点旋转的方…

66、Flink 的 DataStream Connectors 支持的 Formats 详解

支持的 Formats 1.概述 Format 定义如何对 Record 进行编码以进行存储&#xff0c;目前支持以下格式&#xff1a; Avro Azure Table Hadoop Parquet Text files2.Avro format Flink 内置支持 Apache Avro 格式&#xff0c;Flink 的序列化框架可以处理基于 Avro schemas 生成…

人脸检测+调整分辨率+调整帧率

初始检测&#xff1a;只在视频的前几秒内进行一次人脸检测&#xff0c;以确定主持人的大致位置。计算裁剪框&#xff1a;基于检测到的主持人位置&#xff0c;计算一个以主持人面部为中心的固定裁剪框。视频裁剪&#xff1a;使用计算出的裁剪框对整个视频进行裁剪&#xff0c;将…

一文学会用RKE部署高可用Kubernetes集群

k8s架构图 RKE简介 RKE全称Rancher Kubernetes Engine&#xff0c;是一个快速的&#xff0c;多功能的 Kubernetes 安装工具。通过RKE&#xff0c;我们可以快速的安装一个高可用K8S集群。RKE 支持多种操作系统&#xff0c;包括 MacOS、Linux 和 Windows。 K8S原生安装需要的先…

【YOLOv5/v7改进系列】改进池化层为SimSPPF

一、导言 SimSPPF&#xff08;Simplified Spatial Pyramid Pooling with Fixed-size kernel&#xff09;模块是在YOLOv6架构中引入的一个关键组件&#xff0c;它旨在优化原始SPPF&#xff08;Spatial Pyramid Pooling Fixed-size&#xff09;模块的效率。以下是SimSPPF的一些优…

开发TEE的踩坑之开发TEE

系统&#xff1a;Ubuntu20.04&#xff08;双系统&#xff0c;非虚拟机&#xff09; 一、前置说明1、TEE平台的选择2、机器间的通信方式3、程序和数据集的示例4、结果文件的解密 二、服务器部署三、客户端部署四、工程应用 本系列为笔者开发TEE&#xff08;Trusted Execution En…

JS和jQuery操作表单常见的错误用法

设置radio选中 正确用法&#xff1a; //jquery $([name"sex"][value"1"]).prop(checked, true); $([name"sex"][value"1"])[0].checked true; //so, js method is: document.getElementById(youRadioId).checked true;错误用法 $([n…

【笔记】虚拟机中的主从数据库连接实体数据库成功后的从数据库不同步问题解决方法2

错误&#xff1a; Last_Errno: 1008 Last_Error: Coordinator stopped because there were error(s) in the worker(s). The most recent failure being: Worker 1 failed executing transaction ANONYMOUS at source log mysql-bin.000014, end_log_pos 200275. See error lo…