为什么项目中使用 slf4j 而不是Log4j ?

为什么项目中使用 slf4j 而不是Log4j ?,第1张

为什么项目中使用 slf4j 而不是Log4j ? 为什么项目中使用 slf4j 而不是Log4j ?
slf4j不是具体的日志解决方案,它只服务于各种各样的日志系统。按照官方的说法,slf4j是一个用于日志系统的简单Facade,允许最终用户在部署其应用时使用其所希望的日志系统。可以将Log4j看成是一个完整的日志库,而slf4j是一个日志库的规范接口。 slf4j提供了基于占位符的日志方法,减少了在String拼接时的性能开销问题。
slf4j日志 (Simple Loging Facade For Java)
slf4j 是一个为 Java 程序提供日志输出的统一接 口,并不是一个具体的日志实现方案,就比如 JDBC 一样,只是一种规则而已。所以单独的 slf4j 是不 能工作的,必须搭配其他具体的日志实现方案,比如 apache的org.apache.log4j.Logger,jdk 自带 的java.util.logging.Logger 等。
Log4j日志
Log4j 是 Apache 的一个开源项目,通过使用 Log4j,我们可以控制日志信息输送的目的地是控制台、 文件、GUI 组件,甚至是套接口服务器、NT 的事件记录器、UNIX Syslog 守护进程等;我们也可以控 制每一条日志的输出格式;通过定义每一条日志信息的级别,我们能够更加细致地控制日志的生成过程。 Log4j 由三个重要的组成构成 1. 日志记录器(Logger) :控制要启用或禁用哪些日志记录语句,并对日志信息进行级别限制 2. 输出端(Appenders) : 指定了日志将打印到控制台还是文件中 3. 日志格式化器(Layout) : 控制日志信息的显示格式
Logback
Logback 主要由三个模块组成: 1.logback-core 是其它模块的基础设施,其它模块基于它构建,显然,logback-core 提供了一些关键的通用机制。 2.logback-classic 的地位和作用等同于 Log4J,它也被认为是 Log4J 的一个改进版,并且它实现了简单日志门面 SLF4J; 3.logback-access 主要作为一个与 Servlet 容器交互的模块,比如说 tomcat 或者 jetty,提供一些与 HTTP 访问相关的功能。
ELK 是软件集合 Elasticsearch、Logstash、Kibana 的简称
由这三个软件及其相关的组件可以打 造大规模日志实时处理系统: 1.Elasticsearch 是一个基于 Lucene 的、支持全文索引的分布式存储和索引引擎,主要负责将日志索引并存储起来,方便业务方检索查询。 2.Logstash 是一个日志收集、过滤、转发的中间件,主要负责将各条业务线的各类日志统一收集、过滤后,转发给 Elasticsearch 进行下一步处理。 3.Kibana 是一个可视化工具,主要负责查询 Elasticsearch 的数据并以可视化的方式展现给业务方,比如各类饼图、直方图、区域图等。

欢迎分享,转载请注明来源:内存溢出

原文地址: http://outofmemory.cn/zaji/5700274.html

(0)
打赏 微信扫一扫 微信扫一扫 支付宝扫一扫 支付宝扫一扫
上一篇 2022-12-17
下一篇 2022-12-17

发表评论

登录后才能评论

评论列表(0条)

保存