1.1 欢迎来到log4j 2!
1.1.1 简介
几乎每一个大型应用程序都包含自己的日志记录或跟踪API。根据这个规则,在1996年初,E.U. SEMPER项目决定编写自己的跟踪API。经过无数次的改进,多次转世和大量的工作,API已经进化成为log4j,一种流行的Java日志记录包。该软件包是在 Apache Software License 下发布的,这是一个由开源倡议认证的完全成熟的开源许可证。最新的log4j版本,包括完整的源代码、类文件和文档,可以在http://logging.apache.org/log4j/2.x/index.html上找到。
用来调试代码的一种低技术方法,是将日志语句插入到代码中。因为调试器并不总是可用或适用,这也可能是唯一的方法。 对于多线程应用程序和大型的分布式应用程序,通常就是这种情况。
经验表明,日志记录是开发周期的一个重要组成部分。它有多个优点。它提供了有关应用程序运行的精确上下文。 一旦插入到代码中,日志输出的生成就不需要人为干预。 此外,日志输出可以保存在持久性介质中以便稍后进行研究。 除了在开发周期中使用之外,还可以将足够丰富的日志包视为审计工具。
正如Brian W.Kernighan和Rob Pike在他们的《编程实践》一书中所说:
作为个人选择,除了获取一个堆栈跟踪,或者一两个变量的值之外,我们倾向于不使用调试器。一个原因是,很容易迷失在复杂的数据结构和控制流程的细节上;我们发现,步进式执行程序的效率,低于努力思考并在关键位置添加输出语句和自检代码。单击语句所花费的时间比扫描正确放置的显示的输出要长。 即使我们知道代码的关键部分在哪里,决定放置打印语句的位置也会比单步执行需要更少的时间。 更重要的是,调试语句与程序保持一致;而调试会话是临时的。
日志确实有它的缺点。它会降低应用程序的速度。如果过于冗长,可能会导致滚动失明。为了缓解这些问题,log4j被设计成可靠、快速和可扩展的。由于日志记录很少是应用程序的主要关注点,因此log4j API力求简单易懂和易于使用。
1.1.2 Log4j 2
Log4j 1.x 已被广泛采用,并用于许多应用中。然而,经过多年的发展,它的发展已经放缓。由于它需要与非常老的Java版本兼容,因此维护变得更加困难,并且在2015年8月成为End of Life。它的替代方案SLF4J/Logback,对框架进行了许多必要的改进。 那么,为什么还要浪费心思去使用Log4j 2呢? 以下是一些原因。
原创文章,作者:ItWorker,如若转载,请注明出处:https://blog.ytso.com/60386.html