springboot将logback替换成log4j2

news2024/11/27 8:27:53

一 为何要替换成log4j2

1.1 log4j2的优点

log4j2使用了两种方式记录日志:AsyncAppender和AsyncLogger。

1.AsyncAppender使用队列异步记录日志,但是一旦队列已满,appender线程需要等待。
2.AsyncLogger是采用Disruptor,通过环形队列无阻塞队列作为缓冲,多生产者多线程的竞争是通过CAS实现,无锁化实现,可以降低极端大的日志量时候的延迟尖峰,Disruptor 可是号称一个线程里每秒处理600万订单的高性能队列。

注意的是:  使用AsyncLogger才会使用disruptor提高性能。如果使用的AsyncAppender,则使用的是类似logback一样的队列的方式做异步记录。
https://blog.csdn.net/m0_69057918/article/details/130972522

1.2 log4j2.xml如何读取application.yml中属性值

1.2.1 操作步骤

1.在application.properties 或者application.yml文件中配置

patcher.log=/data350/fengqxLogFile/patcher

2.编写监听器

@Component
public class LoggerListener implements ApplicationListener<ApplicationEvent>, Ordered {
    @Override
    public void onApplicationEvent(ApplicationEvent applicationEvent) {
 
        if (applicationEvent instanceof ApplicationEnvironmentPreparedEvent) {
            ConfigurableEnvironment environment = ((ApplicationEnvironmentPreparedEvent) applicationEvent).getEnvironment();
            String filePath = environment.getProperty("patcher.log");
            if (StringUtils.isNotEmpty(filePath)) {
                System.err.println("=================" + filePath);
                System.setProperty("patcher.log", filePath);
            }
        }
    }
 
    @Override
    public int getOrder() {
        // 当前监听器的启动顺序需要在日志配置监听器的前面,所以此处减 1
        return LoggingApplicationListener.DEFAULT_ORDER - 1;
    }

3.在 /src/main/resources/META-INF/spring.factories进行加载监听器

org.springframework.context.ApplicationListener=com.longze.patcher.listener.MyLoggerListener

4.log4j2.xml进行使用配置是路径

springboot log4j2日志 配置路径_springboot指定log4j配置文件位置-CSDN博客

1.3 log4j&slf4j&log4j2需要的导入的包

Log4j实例:

import org.apache.log4j.Logger;

private static final Logger LOGGER = Logger.getLogger(X.class);

Slf4j实例: 

import org.slf4j.Logger;
import org.slf4j.LoggerFactory;

private static final Logger logger = LoggerFactory.getLogger(X.class);

Log4j2的使用: 

import org.apache.logging.log4j.LogManager;
import org.apache.logging.log4j.Logger;

private static final Logger logger = LogManager.getLogger(X.class);

升级log4j 2.x版本 缓存异步化配置解读 - 欲上九天揽月 - ITeye博客

1.4 整合log4j2需要引入的依赖与排除依赖

1.引入依赖

<dependencies>
  <!-- https://mvnrepository.com/artifact/org.apache.logging.log4j/log4j-slf4j-impl -->
  <dependency>
      <groupId>org.apache.logging.log4j</groupId>
      <artifactId>log4j-slf4j-impl</artifactId>
      <version>2.17.1</version>
      <scope>test</scope>
  </dependency>
  <!-- https://mvnrepository.com/artifact/org.apache.logging.log4j/log4j-api -->
  <dependency>
      <groupId>org.apache.logging.log4j</groupId>
      <artifactId>log4j-api</artifactId>
      <version>2.17.1</version>
  </dependency>
  <!-- https://mvnrepository.com/artifact/org.apache.logging.log4j/log4j-core -->
  <dependency>
      <groupId>org.apache.logging.log4j</groupId>
      <artifactId>log4j-core</artifactId>
      <version>2.17.1</version>
  </dependency>
  <dependency>
      <groupId>com.Imax</groupId>
      <artifactId>disruptor</artifactId>
      <version>2.17.1</version>
  </dependency>
</dependencies>

排除jar包:

 

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

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

相关文章

携程差旅智核系统 | OPENAIGC开发者大赛高校组优秀作品

在第二届拯救者杯OPENAIGC开发者大赛中&#xff0c;涌现出一批技术突出、创意卓越的作品。为了让这些优秀项目被更多人看到&#xff0c;我们特意开设了优秀作品报道专栏&#xff0c;旨在展示其独特之处和开发者的精彩故事。 无论您是技术专家还是爱好者&#xff0c;希望能带给…

【算法】DFS系列之 记忆化搜索

【ps】本篇有 5 道 leetcode OJ。 目录 一、算法简介 二、相关例题 1&#xff09;斐波那契数 .1- 题目解析 .2- 代码编写 2&#xff09;不同路径 .1- 题目解析 .2- 代码编写 3&#xff09;最长递增子序列 .1- 题目解析 .2- 代码编写 4&#xff09;猜数字大小 II …

Linux云计算 |【第四阶段】RDBMS2-DAY5

主要内容&#xff1a; PXC概述、部署PXC&#xff08;自动故障恢复测试&#xff09;、存储引擎、读锁/写锁、表锁/行锁、常用的存储引擎介绍 一、PXC概述 PXC&#xff08;Percona XtraDB Cluster&#xff0c;简称PXC集群&#xff09;&#xff0c;是基于Galera的MySQL高可用集群…

OpenCV 之 实现基于Lucas-Kanade算法的光流追踪

引言 在计算机视觉中&#xff0c;光流是指物体、场景或摄像机之间的相对运动造成的像素变化。光流估计是计算机视觉中的一个基础课题&#xff0c;广泛应用于许多领域&#xff0c;比如自动驾驶汽车、机器人导航、手势识别等。OpenCV是一个开源的计算机视觉库&#xff0c;提供了…

vue使用gdal-async获取tif文件的缩略图

vue使用gdal-async获取tif文件的缩略图 npm i gdal-asyncgdal-async 在Vue组件中使用gdal-async获取缩略图&#xff1a; <template><div><img v-if"thumbnail" :src"thumbnail" alt"Thumbnail" /></div> </templa…

友思特方案 | FantoVision边缘计算:嵌入式视觉系统如何实现“更快 更高 更强”?

导读 便于集成的嵌入式视觉系统一直以来面临着带宽、内存、算力三个方面的挑战。友思特 FantoVision 边缘计算设备拥有更快的处理速度和更高的带宽选择&#xff0c;其开放式架构有效突破了上述三重阻碍。 嵌入式视觉 嵌入式视觉是传统机器视觉衍生出来的子集&#xff0c;嵌入…

STM32移植RT-Thread实现PWM波的输出

在进行PWM波的学习中&#xff0c;依然是踩了小坑&#xff0c;网络上大部分配置都增加了TIM的配置&#xff0c;貌似是不需要的&#xff0c;当开启了TIM的时钟反而影响了PWM的时钟&#xff0c;暂且归咎于版本不一样&#xff1f;还是STM32F1和STM32F4不一样呢&#xff1f;核心问题…

【黑马点评优化】之使用Caffeine+Redis实现应用级二层缓存

【黑马点评优化】之使用CaffeineRedis实现应用级二层缓存 1 缓存雪崩定义及解决方案2 为什么要使用多级缓存3 RedisCaffeine实现应用层二级缓存原理4 利用CaffeineRedis解决Redis突然宕机导致的缓存雪崩问题4.1 pom.xml文件引入相关依赖4.2 本地缓存配置类4.3 修改ShopServiceI…

Blazor Web APP学习记录

目录 1 呈现模式1.1 静态SSR1.2 服务器端交互SSR1.3 客户端交互CSR1.4 自动交互式1.5 注意 2 Blazor Web APP项目3 会话状态 1 呈现模式 参见&#xff1a;https://learn.microsoft.com/zh-cn/aspnet/core/blazor/components/render-modes?viewaspnetcore-8.0 Blazor Web App …

torch-npu的配置

1、简单的调用npu import torch import torch_npu x torch.randn(10000, 10000).npu() y torch.randn(10000, 10000).npu() for _ in range(10000):z x.mm(y) 这个代码的出现就会导致&#xff0c;核心使用99%&#xff0c;显存| 1633 2、安装torch-npu 安装方法看官网介绍…

npm使用时报错:Could not retrieve https://npm.taobao.org/mirrors/node/index.json.

在使用npm时报错&#xff0c;报错信息如下&#xff1a; 报错的原因&#xff1a;是原来的淘宝镜像地址过期了 解决办法&#xff1a;修改镜像地址。打开nvm的安装地址 -->settings.txt文件 -->配置下载源 1、将settings.txt文件中的 node_mirror: https://npm.taobao.or…

机器学习可解释性

机器学习的稳健性、可解释性和结果正确性等是人工智能安全可信应用必须解决的关键问题。 传统机器学习&#xff1a; 内置可解释性&#xff1a;决策树IF-Then规则&#xff0c;直观可理解事后可解释性&#xff1a;训练结束后的可解释技术特定于模型体系结构的解释与解释方法及模…

删除 Word 空白页的 3 种方法总结

在使用 Word 进行文档编辑的时候&#xff0c;空白页的出现常常会让用户感到困扰&#xff0c;Word 空白页的出现可能是由于分页、段落设置以及格式问题&#xff0c;空白页可能会出现在文档的开始、中间及结尾&#xff0c;如果需要打印文档还会影响打印效果&#xff0c;那么 Word…

【论文#性能对比】Video coding with H.264/AVC: Tools, Performance, and Complexity

目录 摘要1.前言2.标准化视频编码方案的概念3. H.264/AVC 编码方案3.1 帧内预测3.2 运动补偿预测3.3 变换编码3.4 熵编码方案3.5 自适应去块滤波器3.6 错误鲁棒性和网络友好性 4.码率受限的编码器控制5. H.264/AVC 的配置文件和级别6.与先前标准的比较6.1 编码效率6.2 硬件复杂…

如何启动一个OpenSearch

创建两个集群&#xff0c;标注 不含备用节点 选择集群版本和配置集群版本 冷热存储和专用主节点这个按需开启 然后是网络&#xff0c;是否使用自定义域名&#xff0c;集群开在VPC还是公网上。 选择是否开启认证&#xff1a; 访问策略&#xff0c;其实就是资源策略 维护时段…

vue页面使用v-print指令打印表格表单的几种方法,包括页眉标题自定义设置

页面效果: 打印预览页面: 步骤: 1.安装vue-print-nb 2.在main.js里面注册 import Print from vue-print-nbVue.use(Print) 3.在页面.vue代码中定义打印范围和打印按钮&#xff0c;我这里是以id"main-div"这个div为范围进行打印 <div> <div id"main-d…

grs认证有什么好处?grs认证相关政策

GRS认证&#xff08;Global Recycled Standard&#xff09;即全球回收标准认证&#xff0c;是一项国际、自愿和全面的产品标准&#xff0c;主要针对回收材料的使用和供应链进行认证。GRS认证能够为企业带来多方面的好处&#xff0c;以下是对这些好处的详细归纳&#xff1a; 一…

【livox雷达】HAP雷达 红外 orin 交换机 ——办公室 硬件搭配

orin&#xff1a;拉一根网线&#xff0c;一端连orin&#xff0c;一端连交换机 雷达&#xff1a;接上电源&#xff0c;另一端连接交换机 红外&#xff1a;用gsml方式连到orin上 交换机&#xff1a;以交换机为中心&#xff0c;连一根网线到orin&#xff0c;一根接外网的网线连给…

CesiumLab介绍

软考鸭小程序 学软考,来软考鸭! 提供软考免费软考讲解视频、题库、软考试题、软考模考、软考查分、软考咨询等服务 CesiumLab是一个围绕Cesium平台设计的完整易用的数据预处理工具集&#xff0c;它旨在最大化提升三维数据可视化效率。本文将详细介绍CesiumLab的安装、主要功能…

2-119 基于matlab的合成孔径雷达(SAR)RDA(距离多普勒算法)、RMA(距离徙动算法)、CSA(线性调频变标算法)算法点目标成像与分析

基于matlab的合成孔径雷达(SAR)RDA(距离多普勒算法)、RMA(距离徙动算法)、CSA(线性调频变标算法)算法点目标成像与分析&#xff0c;RDA算法通过参考目标的多普勒历程完成对应匹配滤波器设计&#xff0c;获得同距离处不同目标相对于参考目标的方位位置。RMA是一种高分辨率的频域…