看来log4j存在一些类加载问题(其中包括其他问题),在我看来,趋势是从log4j转向slf4j。(Hibernate停止使用第一个来支持后者)
更新:
您似乎偶然发现了log4j(和Apache Commons
Logging库)的主要问题,即在使用它们时,发现它们并与正确的类加载器进行交互非常困难。这里有一个非常详尽的解释,并附有示例。
传达的信息是,新日志记录框架SLF4J的主要推动力之一是完全消除这些问题。 您可能想要交换它,看看您的生活是否变得更轻松。
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或直接