log4j2简介
Apache Log4j 2
Apache Log4j 2是对Log4j的升级,它比它的前辈Log4j 1提供了显著的改进。在解决Logback的架构中存在的一些固有问题时,提供了许多可用的改进。
特性
API分离
Log4j的API与实现分离,使应用程序开发人员清楚地知道,他们可以使用哪些类和方法来确保向前兼容性。这允许Log4j团队以一种兼容的方式安全地改进实现。
改进的性能
Log4j 2包含了基于LMAX破坏者库的下一代异步日志记录器。在多线程场景中,异步日志记录器的吞吐量比Log4j 1要高18倍,并且数量级要低。Log4j 1.x和Logback。有关详细信息,请参阅异步日志记录性能。否则,Log4j 2将显著优于Log4j 1。x,Logback java.util。日志记录,特别是在多线程应用程序中。更多信息请参见性能。
自动重新加载配置
与Logback一样,Log4j 2可以在修改后自动重新加载它的配置。与Logback不同的是,在重新配置的情况下,它将不会丢失日志事件。
先进的过滤
与Logback一样,Log4j 2支持基于上下文数据、标记、正则表达式和日志事件中的其他组件进行过滤。在传递给日志记录器或通过appender之前,可以指定过滤应用于所有事件。此外,过滤器还可以与日志记录器相关联。与Logback不同的是,你可以在任何情况下使用一个通用的过滤器类。
插件体系结构
Log4j使用插件模式来配置组件。因此,您不需要编写代码来创建和配置Appender、布局、模式转换器等等。Log4j自动识别插件并在配置引用它们时使用它们。
属性的支持
您可以在配置中引用属性,Log4j将直接替换它们,或者Log4j将把它们传递给一个将动态解析它们的底层组件。属性来自于配置文件中定义的值、系统属性、环境变量、ThreadContext映射和事件中的数据。用户可以通过添加自己的Lookup Plugin来进一步定制属性提供者。
Java 8λ支持
在此之前,如果一个日志消息的构建成本很高,那么在构造消息之前,您通常会显式地检查请求的日志级别是否启用。在Java 8上运行的客户机代码可以从Log4j的lambda支持中获益。由于Log4j不会对一个lambda表达式进行评估,如果请求的日志级别没有启用,那么使用较少的代码就可以实现相同的效果。
自定义日志级别
在Log4j 2中,可以很容易地在代码或配置中定义自定义日志级别。不需要子类化。
版本支持
在版本2.9.1中,Log4j支持Java 9,但是仍然可以在Java 7或8中工作。在这个版本中,log4j-api被打包为一个多版本jar,并且支持StackWalker和Process api的使用。
在版本2.4中,Log4J需要Java 7。
Log4j版本2.3和旧版本需要Java 6。
支持特性
XML configuration、Properties configuration、JSON configuration
CSV Layout、JSON Layout、XML Layout
Async Loggers
Kafka Appender、SMTP Appender、JMS Appender、JDBC Appender、JPA Appender、NoSQL Appender with MongoDB provider 等
log4j2简介的更多相关文章
- logger(三)log4j2简介及其实现原理
一.log4j2简介 log4j2是log4j 1.x和logback的改进版,据说采用了一些新技术(无锁异步.等等),使得日志的吞吐量.性能比log4j 1.x提高10倍,并解决了一些死锁的bug, ...
- Log4j2 简介
介绍 Log4j2是Log4j的升级版,与之前的版本Log4j 1.x相比.有重大的改进,修正了Logback固有的架构问题的同事,改进了许多Logback所具有的功能. 特性 一.API 分离 Lo ...
- log4j2笔记 #02# 启用异步日志
索引 参考 Making All Loggers Asynchronous 第一步,添加相应的disruptor库 第二步,设置系统属性log4j2.contextSelector 第三步,检验! 参 ...
- log4j2使用教程
Log4j2简介 log4j2是log4j 1.x 的升级版,2015年5月,Apache宣布log4j1.x 停止更新.最新版为1.2.17. log4j2参考了logback的一些优秀的设计, ...
- Log4j2基本使用入门
1.Log4j2简介 Apache Log4j 2是日志框架Log4j的升级, 它比其前身Log4j 1.x提供了重要的改进, 并且参考了Logback中许多有用的改进, 同时修复了Logback的一 ...
- Log4j2日志技术总结
前言 现在流行是SLF4j和Log4j2组合的日志技术,但为了日志技术归类,故前因后果都将做一下介绍. 市场上流行的日志框架 JUL java util logging Java开发团队开发,Jdk原 ...
- 《手把手教你》系列基础篇(八十七)-java+ selenium自动化测试-框架设计基础-Log4j 2实现日志输出-上篇(详解教程)
1.简介 Apache Log4j 是一个非常古老的日志框架,并且是多年来最受欢迎的日志框架. 它引入了现代日志框架仍在使用的基本概念,如分层日志级别和记录器. 2015 年 8 月 5 日,该项目管 ...
- 日志组件二:log4j2
一.背景 随着业务服务(Server App)逐渐增加,我们的业务系统中的日志输出面临的问题越来越多,高并发下对磁盘io这块消耗的越来越大,因此,急需要一个高性能且最好能够支持异步输出日志的日志框架, ...
- Log4j2中的同步日志与异步日志
1.背景 Log4j 2中记录日志的方式有同步日志和异步日志两种方式,其中异步日志又可分为使用AsyncAppender和使用AsyncLogger两种方式. 2.Log4j2中的同步日志 所谓同步日 ...
随机推荐
- storm-redis 详解
多的不说,先来代码分析,再贴我自己写的代码.如果代码有错误,求更正.. 导入两个关键包,其他项目需要的包,大家自己导入了,我pom下的包太多,不好一下扔上来. <dependency> & ...
- Java——动态创建Class(不写入文件,直接从内存中创建class)
原文:https://blog.csdn.net/zhao_xinhu/article/details/82499062#commentsedit 参考:https://www.cnblogs.com ...
- springmvc-初次接触
一,mvc做的事情 1,将url映射到java类或者java的方法. 2,封装用户提交的数据 3,处理请求--调用相关的业务处理--封装想相应的数据 4,将相应数据进行渲染,jsp或者html 二,s ...
- layui 数据表格最简单的点击事件
//定义点击事件 table.on('row(test)', function(obj){ console.log(obj.tr) //得到当前行元素对象 console.log(obj.data) ...
- [SD心灵鸡汤]003.每月一则 - 2015.07
乔布斯去世了,但他留给世人的财富却很多,值得每个人学习.他是个精力充沛魅力无限的家伙,同时也是一个很会鼓动人心的激励大师,甚至在他的平常对话中,经典的语句也常常脱口而出. 这里摘取了一些他的经典语录, ...
- MongoDB启动和关闭问题
1.当我们使用离线安装mongodb完成后, 推荐安装教程: http://dblab.xmu.edu.cn/blog/868-2/#more-868 在使用 ' mongod -f XXX/mong ...
- Rocket - tilelink - toBools
https://mp.weixin.qq.com/s/UGMH8EoaVcFkkQW-l4HLWg 分析toBools在Intellij中显示为红色的问题. 1. 问题 在TLA ...
- ActiveMQ 笔记(一)概述与安装
个人博客网:https://wushaopei.github.io/ (你想要这里多有) 一.消息中间件的产生背景 1.前言:考虑消息中间件的使用场景? 在何种场景下需要使用消息中间件 为什么要 ...
- 快速搭建基于Spring Boot + Spring Security 环境
个人博客网:https://wushaopei.github.io/ (你想要这里多有) 1.Spring Security 权限管理框架介绍 简介: Spring Security 提供了基于 ...
- PAT甲级 Reversible Primes
描述 A reversible prime in any number system is a prime whose "reverse" in that number syste ...