一、功能
在大型应用中,日志可以帮助定位问题和分析性能,日志组件几乎是大型应用的必备组件。
log4j2是log4j的升级版本。
log4j2可以完成日志输出。可以定制日志输出格式,指定日志输出的目的是文件、控制台、数据库或其他存储媒介。
用log4j输出日志相比较于使用“System.out”的最大优势在于可以指定日志输出级别。
二、特点与优势
API独立
log4j API是一个门面(facade),对于实现了log4j的组件都可以使用log4j API作为其前端。
相比于SELF4j,log4j具有如下优势:
- log4j不仅支持String还支持Messages作为日志输出。
- log4j API支持lambda表达式
- 比SELF4j提供更多的日志方法
- 除了SELF4j支持的参数日志格式,还是支持事件
- log4j提供 LogManager.shutdown()
- 完全支持Makers,log Levels和 ThreadContext。
更优的性能
在多线程下相比log4j 1.x 和logback提升18倍吞吐量,并且具有更低的延迟。
支持java8的lambda表达式
几乎没有垃圾回收压力
三、相关框架
与log4j相关的框架有self4j、logback,其实后两个与log4j都是竞争关系。
参考:
log4j 2.x 官方文档: https://logging.apache.org/log4j/2.x/index.html