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中的同步日志 所谓同步日 ...
随机推荐
- javaWeb普通类获取ApplicationContext
网上看了很多关于获取ApplicationContext的方法,五大方法,但是我用web服务使用成功的就这一个,自己记忆下. import javax.servlet.ServletContextEv ...
- search(16)- elastic4s-内嵌文件:nested and join
从SQL领域来的用户,对于ES的文件关系维护方式会感到很不习惯.毕竟,ES是分布式数据库只能高效处理独个扁平类型文件,无法支持关系式数据库那样的文件拼接.但是,任何数据库应用都无法避免树型文件关系,因 ...
- PAT-1058 A+B in Hogwarts (进制转换)
1058. A+B in Hogwarts If you are a fan of Harry Potter, you would know the world of magic has its ow ...
- OAUTH开放授权
OAUTH开放授权 OAUTH开放授权为用户资源的授权提供了一个安全的.开放而又简易的标准.OAUTH的授权不会使第三方触及到用户的帐号信息例如用户名与密码等,即第三方无需使用用户的用户名与密码就可以 ...
- 5.List链表类型介绍和操作
数据类型List链表 (1)介绍 list类型其实就是一个双向链表.通过push,pop操作从链表的头部或者尾部添加删除元素.这使得list既可以用作栈,也可以用作队列. 该list链表类型应用场景: ...
- [256个管理学理论]003.鳄鱼法则(Alligator Principle)
鳄鱼法则(Alligator Principle) 来自于大洋彼岸的让你看不懂的解释: 这是经济学交易技术法则之一,也叫“鳄鱼效应”,它的意思是:假定一只鳄鱼咬住你的脚,如果你用手去试图挣脱你的脚,鳄 ...
- 以太坊智能合约开发框架Truffle
前言 部署智能合约有多种方式,命令行的浏览器的渠道都有,但往往跟我们程序员的风格不太相符,因为我们习惯了在IDE里写了代码然后打包运行看效果. 虽然现在IDE中已经存在了Solidity插件,可以编写 ...
- 居然还有人这样解说mybatis运行原理
目录 Mybatis基本认识 动态代理 JDK实现 CGLIB动态代理 总结 反射 Configuration对象作用 映射器结构 sqlsession执行流程(源码跟踪) Executor Stat ...
- MethodHandle(方法句柄)系列之三:invoke和invokeExact的区别
先把代码贴上来,用的是一样的代码 /** * * @author LiuYeFeng<897908343@qq.com> * @date 2015年4月8日 下午10:41:13 * @C ...
- Spring Boot笔记(二) springboot 集成 SMTP 发送邮件
个人博客网:https://wushaopei.github.io/ (你想要这里多有) 笔记:乘着项目迭代的间隙,把一些可复用的功能从项目中抽取出来,这是其中之一, 一.添加SMTP 及 MA ...