log4j2简介

简介:

各种日志简介

在介绍log4j2之前先简单介绍一下Log4j、Logback、SFL4J、JUL、JCL这些东西是什么以及有啥作用。

Log4j是什么地球人应该都知道。log4j是Log for Java的简称,是Apache的一个开源子项目,有7种不同的日志级别,从低到高一次为TRACE<DEBUG<INFO<WARN<ERROR<FATAL<OFF,支持properties和xml两种配置文件,包含Logger、appender、Layout三个主要组件。

SFL4J是Simple Logging Facade for Java的简称,不是具体的日志解决方案,它只服务于各种各样的日志系统,类似于JDBC。主要应用于库类应用或者嵌入式组件。

Logback和Log4j非常相似,但是有很多改进,有更快的速度更低的内存消耗,某些场景速度比log4j有10背的提升,另外logback实现了sel4jAPI使可以很方便的更换成其他系统。

以上三者的作者都是Ceki Gülcü。

JUL是java.util.logging的简称,是Java自己提供的日志框架,类似于Log4J,但是API并不完善,对开发者不是很友好,而且对于日志的级别分类也不是很清晰。

JCL是Jakarta Commons-Logging的简称。JCL和SLF4J非常类似,也是提供的一套API来掩盖了真正的Logger实现。便于不同的Logger的实现的替换,而不需要重新编译代码。缺点在于它的查找Logger的实现者的算法比较复杂,而且当出现了一些class loader之类的异常时,无法去修复它。


log4j2

Log4j 2是Log4j 1.x的升级版版,在Log4j 1.x的基础上做了显著改善,相比logBack有了很多改进,修复了Logback体系结构上固有的一些问题。


我之前在系统开发的时候用的是log4j,上线前做压测的时候性能很不理想,jstack一看发现很多log4j相关的线程在等待资源,明显是卡在log4j上了,本来是想用logback后来发现log4j2功能更多效果更好,果断用上了,当时用的时候主要还是考虑性能。

Log4j 2的性能提升主要体现在利用了jdk5的乐观锁机制和异步logger,官方是这么描述的:


Log4j 2 contains next-generation lock-free Asynchronous Loggers based on the LMAX Disruptor library. In multi-threaded scenarios Asynchronous Loggers have 10 times higher throughput and orders of magnitude lower latency than Log4j 1.x and Logback.

Log4j 2 takes advantage of Java 5 concurrency support and performs locking at the lowest level possible. Log4j 1.x has known deadlock issues. Many of these are fixed in Logback but many Logback classes still require synchronization at a fairly high level.


log4j2的官方介绍虽然完美,但是也是有缺点的,目前使用还不是特别成熟,老的项目贸然改用log4j2是有一定风险的,目前我们的系统跑了7 8个月也没发现什么问题,性能非常不错。

详细介绍可以参考官方文档:http://logging.apache.org/log4j/2.x/manual/index.html。 ''


本文转自 古道卿 51CTO博客,原文链接:http://blog.51cto.com/gudaoqing/1427228

相关实践学习
日志服务之使用Nginx模式采集日志
本文介绍如何通过日志服务控制台创建Nginx模式的Logtail配置快速采集Nginx日志并进行多维度分析。
相关文章
|
5月前
|
Java Unix 程序员
log4j基础讲解
log4j基础讲解
29 0
log4j基础讲解
|
Java Android开发
Android日志工具Log的使用
Android日志工具Log的使用
509 0
Android日志工具Log的使用
|
XML Java 关系型数据库
|
监控 Java Apache
|
XML 监控 Java
log4j教程
详细的Log4j使用教程 转载 2016年08月19日 14:44:49 ·         5072 日志是应用软件中不可缺少的部分,Apache的开源项目log4j是一个功能强大的日志组件,提供方便的日志记录。
1273 0
|
存储 消息中间件 监控
|
XML Java 数据库连接
Log4j2_学习_01_Log4j 2使用教程
一、推荐使用的log4j2.xml logs info warn error ...
958 0
|
监控 Java
log4j 的使用和配置简介
1 2 3 4 5 log4j log4j 1.2.17 级别 OFF 关闭所有日志记录 FATAL 严重的错误事件将会导致应用程序的退出 ERROR 虽然发生错误事件,但仍然不影响系统的继续运行。
915 0