log4j2的简单使用

Log4j2 漏洞检测工具清单 距离Log4j2漏洞公开已经过去一个月了,它所造成的严重影响已经不需要我们重复提及了。随着时间的推移,新的漏洞会不断出现,旧的漏洞会不断消失,而这个Log4j2中的RCE漏洞可能需要好几年... 阅读详情

使用这个的初衷是因为在做自己的一个小的netty服务端的时候,用Jmeter压测了一下,结果发现并发数大了之后返回数据特别慢,最后排查是由于日志打印比较大数据(我有一个数据7万多的字节),因此采用log4j2的异步日志处理。

一、所需要jar:

disruptor-3.0.0.jar
log4j-api-2.3.jar
log4j-core-2.3.jar

二、配置文件

pom.xml:

        <dependency>
            <groupId>com.lmax</groupId>
            <artifactId>disruptor</artifactId>
            <version>3.0.0</version>
        </dependency>
        <dependency>
            <groupId>org.apache.logging.log4j</groupId>
            <artifactId>log4j-core</artifactId>
            <version>2.3</version>
        </dependency>
        <dependency>
            <groupId>org.apache.logging.log4j</groupId>
            <artifactId>log4j-api</artifactId>
            <version>2.3</version>
        </dependency>

由于服务器只支持jdk1.6,所以只能采用较低的版本

classpath:(这个位置不用多说,可以放在src目录下,也可以在src同级目录建一个resources目录放置)

log4j2.xml(这个网上有很多资料,就不在这献丑了)

log4j2.component.properties(异步)

Log4jContextSelector=org.apache.logging.log4j.core.async.AsyncLoggerContextSelector

三、测试

使用:

private static Logger log = LogManager.getLogger(BusinessThreadUtil.class);
public void test(){
		log.info("log print");//同1.x使用
		System.out.println("console print");
}

四、运行结果

如果跟这个相同,说明异步生效。

Log4j2Scanner Log4j2-Scan 立即下载

相关推荐

用74LS190和555定时器复刻经典交通灯:一个电子工程新手的实战避坑记录

本文记录了使用74LS190和555定时器复刻经典交通灯的实战过程,详细介绍了元件选型、电路搭建与调试的关键步骤。特别分享了555定时器参数设置、74LS190级联技巧以及状态机设计的避坑经验,为电子工程新手提供实用参考。

weixin_42629671的博客 307

log4j2 burp插件-Log4j2Scan(二)

该工具为被动扫描Log4j2漏洞`CVE-2021-44228`的BurpSuite插件,具有多DNSLog(后端)平台支持,支持异步并发检测、内网检测、延迟检测等功能。

SuperherRo的博客 5353

摩尔线程GPU实战:5分钟搞定AI模型部署(含Docker避坑指南)

本文详细介绍了摩尔线程GPU在AI模型部署中的实战应用,包括环境配置、Docker避坑指南及性能优化技巧。通过5分钟快速部署指南,帮助开发者高效利用摩尔线程GPU进行AI模型推理,特别针对常见兼容性问题提供解决方案,显著提升部署效率。

weixin_28736335的博客 454

log4j2Scan.jar在log4j漏洞复现中的使用

不需要开启拦截,插件就可以自动检测该网站有没有log4j的漏洞。装完后浏览器打开一个有log4j漏洞的网站。首先在burp中安装该插件。有+号说明发现了漏洞。

wutiangui的博客 754

Window10 intel realsense D435安装并实现opencv显示realsense读取的彩色和深度数据(QT+openCV+rsD35)

(1)点击"官方指南" 来到下载页,-&gt;最新的稳定版本发布 (本人下的2.16.5,现在最新2.17.0) 不需要做开发,只要下载Intel RealSense Viewer就好,这个就是相机的可视化界面,简洁明了。对应的安装包是Intel.RealSense.Viewer.exe。 本人的毕设要用到深度图做开发,所以安装Intel.RealSense.SDK.exe,SDK...

Pabebe的博客 1万+

从玩具到工业:手把手教你用Webots仿真Scara抓取(逆解实战篇)

本文详细介绍了如何在Webots仿真环境中实现Scara机械臂的逆解计算与抓取操作,涵盖从环境配置、逆运动学算法到轨迹规划与实时控制的完整流程。通过实战案例演示,帮助读者掌握机械臂逆解的核心技术,并应用于工业自动化场景,提升Scara机械臂的编程与控制能力。

weixin_30932215的博客 504

Log4j2Scan 开源项目教程

Log4j2Scan 项目的目录结构如下: ``` Log4j2Scan/ ├── README.md ├── bin/ │ ├── Log4j2Scan.jar │ └── run.sh ├── conf/ │ └── config.properties ├── lib/ │ └── (各种依赖库) ├── src/ │ └── (源代码文件) └── test/ ...

gitblog_00541的博客 563

STM32F103C8T6蓝莓派用HAL库GPIO模拟SPI驱动MAX31865读取PT100温度(附完整代码)

本文详细介绍了如何在STM32F103C8T6蓝莓派开发板上使用HAL库通过GPIO模拟SPI驱动MAX31865读取PT100温度传感器的完整方案。内容包括硬件连接、CubeMX配置、GPIO模拟SPI实现、温度计算算法及常见问题排查,并附有完整代码示例,帮助开发者快速实现高精度温度测量。

weixin_30684743的博客 938

log4j2 logger_简单一致的Log4j2 Logger命名

log4j2 logger 在“ 带有Java 7方法句柄的可移植记录器名称”一文中 ,我写了关于使用Java 7的方法句柄来命名类的记录器的文章。 我在那篇文章中说过,这种方法的优点包括记录器命名的一致性,并避免了意外的代码复制和粘贴,这可能导致不同的类名被用作记录器名称。 在这篇文章中,我看看如何Log4j的2提供了一种方法实现这些同样的好处。 Log4j 2可以识别基于类名的记录器命...

最佳 Java 编程 1023

带标签的PHM2009齿轮箱数据集

PHM2009附加数据集—带标签的齿轮箱数据集,可用于测试算法

qq_39379705的博客 4877

AE-扭曲-变形-弧

一些AE效果的着色器实现记录

What_can_you_do的博客 1176

《Log4j 2.x的简单使用》

《Log4j 2.x的简单使用 》下载与安装log4j简单入门案例Log4j的配置文件有多种形式日志是输出级别可以配置配置文件介绍将日志输出保存在某一文件案例 下载与安装log4j   从版本2.9.1开始,Log4j支持Java 9,但仍可在Java 7或8中运行。在此版本中,log4j-api打包为多版本jar,并支持使用StackWalker和Process API。 从版本2.4开始,Lo...

乌鸦大大 606

企业数字化建设之——品牌零售全渠道运营中台解决方案

OMS审单 --> 订单进入OMS待发货列表区域 --> 备货(线下)-->拣货((线下 )-->质检(线下)--> 包装(线下)--> 快递员取货(线下)(物品 + 客户收货地址清单 )--> 快递员发货(2.2.5 正常退货,客户发起 --> 客服助理审核 --> 评审组 --> ( 货物运输 ) -->质检 ->仓库收货入 正常仓库 -->财务退款,记账。OMS审单 --> 订单进入物流公司系统(如:*丰),--> 快递员发货 --> 物流状态同步OMS --> OMS同步物流状态到销售平台。

java_zhong1990的专栏 612

Log4J2.3版本简单测试验证

 Log4J2.3简介 Log4J2.3版本是老的Log4J的升级版本,修复了老版本的一些BUG,并在很多功能上进行优化和提升,增加了诸如异步等功能。具体可以参照Log4J2的apach网站说明,http://logging.apache.org/log4j/2.x/ 做了个简单的例子 下载当前最新版本的Log4J2.3,然后解压。 创建Eclipse工程,并在工程classpath

lakegrass的专栏 3593

深度学习工具包 DeepLearningToolbox

深度学习工具包Deprecation notice.-----This toolbox is outdated and no longer maintained.There are much better tools available for deep learning than this toolbox, e.g. [Theano](http://deeplearning.net/software/theano/), [torch](http://torch.ch/) or [tensorflow](http://www.tensorflow.org/)I would suggest you use one of the tools mentioned above rather than use this toolbox.Best, Rasmus.DeepLearnToolbox================A Matlab toolbox for Deep Learning.Deep Learning is a new subfield of machine learning that focuses on learning deep hierarchical models of data.It is inspired by the human brain's apparent deep (layered, hierarchical) architecture.A good overview of the theory of Deep Learning theory is[Learning Deep Architectures for AI](http://www.iro.umontreal.ca/~bengioy/papers/ftml_book.pdf)For a more informal introduction, see the following videos by Geoffrey Hinton and Andrew Ng.* [The Next Generation of Neural Networks](http://www.youtube.com/watch?v=AyzOUbkUf3M) (Hinton, 2007)* [Recent Developments in Deep Learning](http://www.youtube.com/watch?v=VdIURAu1-aU) (Hinton, 2010)* [Unsupervised Feature Learning and Deep Learning](http://www.youtube.com/watch?v=ZmNOAtZIgIk) (Ng, 2011)If you use this toolbox in your research please cite [Prediction as a candidate for learning deep hierarchical models of data](http://www2.imm.dtu.dk/pubdb/views/publication_details.php?id=6284)```@MASTERSTHESIS\{IMM2012-06284, author = "R. B. Palm", title = "Prediction as a candidate for learning deep hierarchical models of data", year = "2012",}```Contact: rasmusbergpalm at gmail dot comDirectories included in the toolbox-----------------------------------`NN/` - A library for Feedforward Backpropagation Neural Networks`CNN/` - A library for Convolutional Neural Networks`DBN/` - A library for Deep Belief Networks`SAE/` - A library for Stacked Auto-Encoders`CAE/` - A library for Convolutional Auto-Encoders`util/` - Utility functions used by the libraries`data/` - Data used by the examples`tests/` - unit tests to verify toolbox is workingFor references on each library check REFS.mdSetup-----1. Download.2. addpath(genpath('DeepLearnToolbox'));Example: Deep Belief Network---------------------```matlabfunction test_example_DBNload mnist_uint8;train_x = double(train_x) / 255;test_x = double(test_x) / 255;train_y = double(train_y);test_y = double(test_y);%% ex1 train a 100 hidden unit RBM and visualize its weightsrand('state',0)dbn.sizes = [100];opts.numepochs = 1;opts.batchsize = 100;opts.momentum = 0;opts.alpha = 1;dbn = dbnsetup(dbn, train_x, opts);dbn = dbntrain(dbn, train_x, opts);figure; visualize(dbn.rbm{1}.W'); % Visualize the RBM weights%% ex2 train a 100-100 hidden unit DBN and use its weights to initialize a NNrand('state',0)%train dbndbn.sizes = [100 100];opts.numepochs = 1;opts.batchsize = 100;opts.momentum = 0;opts.alpha = 1;dbn = dbnsetup(dbn, train_x, opts);dbn = dbntrain(dbn, train_x, opts);%unfold dbn to nnnn = dbnunfoldtonn(dbn, 10);nn.activation_function = 'sigm';%train nnopts.numepochs = 1;opts.batchsize = 100;nn = nntrain(nn, train_x, train_y, opts);[er, bad] = nntest(nn, test_x, test_y);assert(er < 0.10, 'Too big error');```Example: Stacked Auto-Encoders---------------------```matlabfunction test_example_SAEload mnist_uint8;train_x = double(train_x)/255;test_x = double(test_x)/255;train_y = double(train_y);test_y = double(test_y);%% ex1 train a 100 hidden unit SDAE and use it to initialize a FFNN% Setup and train a stacked denoising autoencoder (SDAE)rand('state',0)sae = saesetup([784 100]);sae.ae{1}.activation_function = 'sigm';sae.ae{1}.learningRate = 1;sae.ae{1}.inputZeroMaskedFraction = 0.5;opts.numepochs = 1;opts.batchsize = 100;sae = saetrain(sae, train_x, opts);visualize(sae.ae{1}.W{1}(:,2:end)')% Use the SDAE to initialize a FFNNnn = nnsetup([784 100 10]);nn.activation_function = 'sigm';nn.learningRate = 1;nn.W{1} = sae.ae{1}.W{1};% Train the FFNNopts.numepochs = 1;opts.batchsize = 100;nn = nntrain(nn, train_x, train_y, opts);[er, bad] = nntest(nn, test_x, test_y);assert(er < 0.16, 'Too big error');```Example: Convolutional Neural Nets---------------------```matlabfunction test_example_CNNload mnist_uint8;train_x = double(reshape(train_x',28,28,60000))/255;test_x = double(reshape(test_x',28,28,10000))/255;train_y = double(train_y');test_y = double(test_y');%% ex1 Train a 6c-2s-12c-2s Convolutional neural network %will run 1 epoch in about 200 second and get around 11% error. %With 100 epochs you'll get around 1.2% errorrand('state',0)cnn.layers = { struct('type', 'i') %input layer struct('type', 'c', 'outputmaps', 6, 'kernelsize', 5) %convolution layer struct('type', 's', 'scale', 2) %sub sampling layer struct('type', 'c', 'outputmaps', 12, 'kernelsize', 5) %convolution layer struct('type', 's', 'scale', 2) %subsampling layer};cnn = cnnsetup(cnn, train_x, train_y);opts.alpha = 1;opts.batchsize = 50;opts.numepochs = 1;cnn = cnntrain(cnn, train_x, train_y, opts);[er, bad] = cnntest(cnn, test_x, test_y);%plot mean squared errorfigure; plot(cnn.rL);assert(er<0.12, 'Too big error');```Example: Neural Networks---------------------```matlabfunction test_example_NNload mnist_uint8;train_x = double(train_x) / 255;test_x = double(test_x) / 255;train_y = double(train_y);test_y = double(test_y);% normalize[train_x, mu, sigma] = zscore(train_x);test_x = normalize(test_x, mu, sigma);%% ex1 vanilla neural netrand('state',0)nn = nnsetup([784 100 10]);opts.numepochs = 1; % Number of full sweeps through dataopts.batchsize = 100; % Take a mean gradient step over this many samples[nn, L] = nntrain(nn, train_x, train_y, opts);[er, bad] = nntest(nn, test_x, test_y);assert(er < 0.08, 'Too big error');%% ex2 neural net with L2 weight decayrand('state',0)nn = nnsetup([784 100 10]);nn.weightPenaltyL2 = 1e-4; % L2 weight decayopts.numepochs = 1; % Number of full sweeps through dataopts.batchsize = 100; % Take a mean gradient step over this many samplesnn = nntrain(nn, train_x, train_y, opts);[er, bad] = nntest(nn, test_x, test_y);assert(er < 0.1, 'Too big error');%% ex3 neural net with dropoutrand('state',0)nn = nnsetup([784 100 10]);nn.dropoutFraction = 0.5; % Dropout fraction opts.numepochs = 1; % Number of full sweeps through dataopts.batchsize = 100; % Take a mean gradient step over this many samplesnn = nntrain(nn, train_x, train_y, opts);[er, bad] = nntest(nn, test_x, test_y);assert(er < 0.1, 'Too big error');%% ex4 neural net with sigmoid activation functionrand('state',0)nn = nnsetup([784 100 10]);nn.activation_function = 'sigm'; % Sigmoid activation functionnn.learningRate = 1; % Sigm require a lower learning rateopts.numepochs = 1; % Number of full sweeps through dataopts.batchsize = 100; % Take a mean gradient step over this many samplesnn = nntrain(nn, train_x, train_y, opts);[er, bad] = nntest(nn, test_x, test_y);assert(er < 0.1, 'Too big error');%% ex5 plotting functionalityrand('state',0)nn = nnsetup([784 20 10]);opts.numepochs = 5; % Number of full sweeps through datann.output = 'softmax'; % use softmax outputopts.batchsize = 1000; % Take a mean gradient step over this many samplesopts.plot = 1; % enable plottingnn = nntrain(nn, train_x, train_y, opts);[er, bad] = nntest(nn, test_x, test_y);assert(er < 0.1, 'Too big error');%% ex6 neural net with sigmoid activation and plotting of validation and training error% split training data into training and validation datavx = train_x(1:10000,:);tx = train_x(10001:end,:);vy = train_y(1:10000,:);ty = train_y(10001:end,:);rand('state',0)nn = nnsetup([784 20 10]); nn.output = 'softmax'; % use softmax outputopts.numepochs = 5; % Number of full sweeps through dataopts.batchsize = 1000; % Take a mean gradient step over this many samplesopts.plot = 1; % enable plottingnn = nntrain(nn, tx, ty, opts, vx, vy); % nntrain takes validation set as last two arguments (optionally)[er, bad] = nntest(nn, test_x, test_y);assert(er < 0.1, 'Too big error');```[![Bitdeli Badge](https://d2weczhvl823v0.cloudfront.net/rasmusbergpalm/deeplearntoolbox/trend.png)](https://bitdeli.com/free "Bitdeli Badge")

WINCC7.3破解文件

WINCC7.3硬件够破解文件,有需要的下载!WINCC7.3硬件够破解文件,有需要的下载!

简单一致的Log4j2 Logger命名

在带有Java 7方法句柄的可移植记录器名称一文中 ,我写了关于使用Java 7的方法句柄来命名类的记录器的文章。 我在那篇文章中说过,这种方法的优点包括记录器命名的一致性,避免了意外的代码复制和粘贴,这可能会导致将不同的类名用作记录器名称。 在这篇文章中,我看看如何Log4j的2提供了一种方法实现这些同样的好处。 Log4j 2可以识别基于类名的记录器命名方法。 Log4j 2手册中 ...

最佳 Java 编程 628

Probability and Statistics - 4th edition

Probability and Statistics - 4th edition

Log4j2 RCE 简单复现

一:所以环境 java 1.8.0_u172+idea 注:高版本的java不行,最好是在java1.8.0_u140以前的版本复现。 二:复现过程 github上下载本次复现所需要的东西: 第一步 你需要知道你的IP地址,因为是本地复现,所以就是你本地的物理机IP,也可以是你服务器的IP地址,总之一定是自己的IP地址。你要是做一些坏事儿,铁手镯会带到你的手腕上,请你到里面喝喝茶。 第二步 开启你的LDAP服务,在文件加的POC文件夹下,通过cmd启动你的LDAP服务 java -jar JNDIExp

ChamZhiZe的博客 826

Devexpress16.2.6破解工具

Devexpress16.2.6破解工具Devexpress16.2.6破解工具Devexpress16.2.6破解工具Devexpress16.2.6破解工具

简单粗暴玩转Log4j2

springBoot3简单粗暴集成log4j2,喜欢的点个赞吧!

码农佩奇,一个热爱生活的程序猿! 222

Java工程引入Log4j2并简单使用

如果觉着每个类都要getLogger一下比较麻烦,可以使用lombok来减少代码。获取logger,定义一个类变量logger来接收。具体内容自行网上搜索或使用AI。

LH800393102的博客 427

一个简单的 Log4J 2 示例程序

今天研究了下 Log4J 2,并写了一个最简单的DEMO程序。我的操作系统版本是Win7旗舰版,JDK版本为1.8.0_25。 log4j 2 的官方网站: http://logging.apache.org/log4j/2.x/ log4j 2 的下载地址: http://logging...

154

log4j2简单例子

log4j2简单例子项目结构maven依赖log4j2.xml配置文件java例子输出结果 项目结构 maven依赖 <properties> <maven.compiler.source>1.6</maven.compiler.source> <maven.compiler.target>1.6</maven.compiler.t...

【轰炸机】的博客 1384

log4j2简单的Demo/ log4j2简单的应用

一, 在pom.xml上添加引用 添加到dependencies节点上 &lt;!-- https://mvnrepository.com/artifact/org.apache.logging.log4j/log4j-core --&gt; &lt;dependency&gt; &lt;groupId&gt;org.apache.logging.log4j&lt;/groupId&...

moonncat的博客 852

log4j2日志简单使用

日常开发中少不了日志的使用,可以方便对程序运行过程的记录,更便于进行调试

Kevin-Ding的博客 1405

Log4j2 使用 ELK 简单介绍

ELK 介绍ELK 是 Logstash+ElasticSearch+Kibana: Logstash 负责收集日志 ElasticSearch 负责存储日志 Kibana 提供Web界面查看日志信息 Log4j2配置Log4j2为我们提供SocketAppender,使得我们可以通过TCP或UDP发送日志,详见:http://logging.apache.org/log4j/2.x/manual/

jeikerxiao 5309

log4j2简单使用教程

1、首先加载jar包或者添加pom依赖 log4j有properties的配置,而log4j2好像不支持了(道听途说),所以这里介绍的是xml的配置方式。 两个jar包:log4j-api-2.9.1.jar 以及 log4j-core-2.9.1.jar,版本可以自己去选 或者依赖: <dependency> <groupId>org.apache.logging.log4j</groupId> <artifac

小小的博客 1191
上一篇: Java并发同步器AQS(AbstractQueuedSynchronizer)
下一篇: Java部分集合有序性记录
DRB321
博客等级 码龄12年 4粉丝 28原创
评论 1
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

个

红包个数最小为10个

元

红包金额最低5元

当前余额3.43元 前往充值 >
需支付:10.00元
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付元
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值