当前位置: 首页 > 面试题库 >

Log4j是否被Slf4j抛弃了?

谭宜
2023-03-14
问题内容

看来log4j存在一些类加载问题(其中包括其他问题),在我看来,趋势是从log4j转向slf4j。(Hibernate停止使用第一个来支持后者)

  1. 是真的吗
  2. slf4j解决的log4j主要问题是什么?
  3. slf4j是硬道理还是有更好的“下一个下一个log4j”行业标准?

更新:

  • 因此,delfuego的这个答案使我感到困惑,您可以接受/反对吗?:

您似乎偶然发现了log4j(和Apache Commons
Logging库)的主要问题,即在使用它们时,发现它们并与正确的类加载器进行交互非常困难。这里有一个非常详尽的解释,并附有示例。
传达的信息是,新日志记录框架SLF4J的主要推动力之一是完全消除这些问题。 您可能想要交换它,看看您的生活是否变得更轻松。

  • 由log4j引起的更多类加载问题:http : //articles.qos.ch/classloader.html

问题答案:

Slf4j确实只是一个伐木的门面。但是,原作者是Logback打算由Logback继承。

更新 :如果您想了解Slf4j的另一个好处,那就是事实,不再需要以下(丑陋的)构造来避免toString()不必要的调用:

if (logger.isDebugEnabled()) {
    logger.debug("Message: " + bigObject + ", " + anotherBigObject);
}

您可以改为使用参数化消息:

logger.debug("Message: {}, {}", bigObject, anotherBigObject);

另请参阅什么是最快的(不是)日志记录方式?



 类似资料:
  • 问题内容: 在群集的完整Java EE应用程序中,DTO模式仍然是有效的选择吗?有问题的应用程序使用EJB Hibernate和Struts以及Spring等。在这种情况下传输域对象有什么问题吗? 编辑:只是为了澄清我的问题,随着现代资源和Java EE的改进,是否有理由不仅仅使用域对象?如果没有,那么DTO模式是否会逐渐消失并且不应该在新的应用程序中使用? 问题答案: 不被弃用。是否应使用DTO

  • 主要内容:SLF4J 与 Log4j 的区别,为什么 SLF4J 优于 Log4J?SLF4J 与 Log4j 的区别 SLF4J(Simple Logging Façade for java)是一个 API,旨在提供对许多日志框架的通用访问,log4j 就是其中之一。 它基本上是一个抽象层。它不是日志记录实现。这意味着如果您正在编写一个库并且您使用 SLF4J,您可以将该库提供给其他人使用,他们可以选择与 SLF4J 一起使用的日志记录实现,例如 log4j 或 Java 日志

  • 我在maven项目中使用了SLF4J和log4j。当我在eclipse中用tomcat运行项目时,一切都正常,在maven中使用tomcat maven插件运行项目时。 但是当我把战争穿上我的tomcat正式服时,项目没有开始,给了我这个错误。 JAVAlang.IllegalStateException:检测到log4j-over-slf4j。jar和绑定slf4j-log4j12。类路径上的j

  • 我正在尝试部署我的应用程序,但它给了我一个错误:未能实例化SLF4J LoggerFactory报告的异常: 我在Maven依赖区有罐子: weblogic中log4j jar的类路径: log4j。xml(来自类路径): 我错了什么?我无法想象。。。请帮帮我!谢谢

  • 我想使用log4j2作为我的slf4j日志记录应用程序的日志记录实现。 文档说明我必须依赖于log4j-slf4j-impl和log4j-core。 我的问题是为什么log4j-slf4j-impl不依赖于log4j-core(因此带来了它绝对需要的库)?

  • 本文向大家介绍slf4j与log4j全面了解,包括了slf4j与log4j全面了解的使用技巧和注意事项,需要的朋友参考一下 推荐使用SLF4J(Simple Logging Facade for Java)作为日志的api,SLF4J是一个用于日志系统的简单Facade,允许最终用户在部署其应用时使用其所希望的日志系统。 1、Slf4j优势 与使用apache commons-logging或直接