log4j - 概述
log4j 是一个用 Java 编写的可靠、快速且灵活的日志记录框架 (API),根据 Apache 软件许可进行分发。
log4j 已移植到 C、C++、C#、Perl、Python、Ruby 和 Eiffel 语言。
log4j 在运行时可通过外部配置文件进行高度配置。它从优先级的角度来看待日志记录过程,并提供将日志记录信息定向到各种目的地(如数据库、文件、控制台、UNIX Syslog 等)的机制。
log4j 有三个主要组件:
loggers:负责捕获日志记录信息。
appenders:负责将日志记录信息发布到各种首选目的地。
layouts:负责以不同的样式格式化日志记录信息。
log4j 的历史
于 1996 年初作为欧盟的跟踪 API 启动。 SEMPER(欧洲安全电子市场)项目。
经过无数次的改进和多次改版,最初的 API 已发展成为 log4j,一种流行的 Java 日志记录包。
该包根据 Apache 软件许可证分发,该许可证是经过开放源代码倡议认证的完全开放源代码许可证。
最新的 log4j 版本,包括其完整源代码、类文件和文档,可在 http://logging.apache.org/log4j/ 找到。
log4j 功能
它是线程安全的。
它针对速度进行了优化。
它基于命名记录器层次结构。
它支持每个记录器有多个输出附加器。
它支持国际化。
它不限于预定义的一组设施。
可以使用配置文件在运行时设置日志记录行为。
它从一开始就被设计为处理 Java 异常。
它使用多个级别,即 ALL、TRACE、DEBUG、INFO、WARN、ERROR 和 FATAL。
可以通过扩展 Layout 类轻松更改日志输出的格式。
可以通过 Appender 接口的实现来更改日志输出的目标以及写入策略。
它是故障停止的。然而,尽管 log4j 确实努力确保交付,但它并不保证每个日志语句都将交付到目的地。
日志记录的优缺点
日志记录是软件开发的重要组成部分。编写良好的日志记录代码可快速调试、轻松维护和结构化存储应用程序的运行时信息。
日志记录也有其缺点。它会减慢应用程序的速度。如果太冗长,可能会导致滚动失明。为了缓解这些问题,log4j 被设计为可靠、快速和可扩展的。
由于日志记录很少是应用程序的主要焦点,因此 log4j API 力求简单易懂和使用。