SLF4J简介
SLF4J代表Simple Logging Facade for Java。它提供了Java中所有日志框架的简单抽象。因此,它使用户能够使用单个依赖项处理任何日志框架,例如:Log4J,Logback和JUL(java.util.logging)。可以在运行时/部署时迁移到所需的日志记录框架。
CekiGülcü创建了SLF4J作为Jakarta commons-logging框架的替代品。
在编程中的日志是指记录活动/事件。通常,应用程序开发人员应该负责日志记录。
为了使日志记录更容易,Java提供了各种框架 - Log4J,java.util.logging(JUL), tiny log,logback等。
SLF4J的优点
- 使用SLF4J框架,可以在部署时迁移到所需的日志记录框架。
- SLF4J提供了对所有流行的日志框架的绑定,例如Log4J,JUL,Simple logging和NOP。因此可以在部署时切换到任何这些流行的框架。
- 无论使用哪种绑定,SLF4J都支持参数化日志记录消息。
- 由于SLF4J将应用程序和日志记录框架分离,因此可以轻松编写独立于日志记录框架的应用程序。而无需担心用于编写应用程序的日志记录框架。
- SLF4J提供了一个简单的Java工具,称为迁移器。使用此工具,可以迁移现有项目,这些项目使用日志框架(如Jakarta Commons Logging(JCL)或Log4J或Java.util.logging(JUL))到SLF4J。
日志记录框架概述
日志框架通常包含三个元素
- 记录仪 - 捕获消息和元数据。
- 格式化 - 格式化记录器捕获的消息。
- 处理器 - Handler或appender最终通过在控制台上打印或通过存储在数据库中或通过发送电子邮件来调度消息。
一些框架结合了logger和appender元素来加速操作。
记录器对象
要记录消息,应用程序会发送一个带有名称和安全级别的记录器对象(有时还有异常情况)。
严重程度
日志记录的消息具有级别。下表列出了日志记录的级别。
序号 | 严重程度 | 描述 |
---|---|---|
1 | Fatal | 导致应用程序终止的严重问题。 |
2 | ERROR | 运行时错误 |
3 | WARNING | 在大多数情况下,这种级别的错误是由于使用了已弃用的API。 |
4 | INFO | 运行时发生的事件。 |
5 | DEBUG | 有关系统流程的信息。 |
6 | TRACE | 有关系统流程的更多详细信息。 |
SLF4J与Log4J比较(区别)
Log4J是一个用Java编写的可靠,快速和灵活的日志框架(API),它是在Apache软件许可下发布的。Log4J可在运行时通过外部配置文件进行高度配置。它根据优先级来查看日志记录过程,并提供将日志记录定向到各种目标的机制,例如:数据库,文件,控制台,UNIX Syslog等(有关log4j的更多详细信息,请参阅Log4J教程)。
与Log4J不同,SLF4J(代表:Simple Logging Facade for Java)不是日志框架的实现,它是Java中所有日志框架的抽象,类似于Log4J。因此,两者难以比较。但是,要在两者之间选择一个,那就比较难以决择了。 如果一定要选择,则日志记录抽象始终优于日志记录框架。如果使用日志记录抽象,特别是SLF4J,可以迁移到部署时所需的任何日志记录框架,而无需选择单一依赖项。 阅读以下图表以便更好地理解:
SLF4J和Log4J比较.jpg
网友评论