Spring框架中的java日志与Log4j。哪一个最合适

Spring框架中的java日志与Log4j。哪一个最合适,java,spring,web-applications,logging,log4j,Java,Spring,Web Applications,Logging,Log4j,我们正在使用Spring框架用Java开发一个基于web的应用程序。我们想知道哪个日志系统最适合它,是Log4j还是与jdk集成的JUL(java.util.Logging)。就我而言,前者在开发人员中更受欢迎,并提供了更高的定制选项,但我不确定哪一种更容易适应spring 任何帮助都将不胜感激 谢谢 在开始使用log4j之前,请查看。Log4j不应该再用于新项目。如果您有需要任何日志框架的遗留代码,请使用将旧代码与logback(或log4j,如果必须的话)通信 您不应该使用JUL的主要原因是

我们正在使用Spring框架用Java开发一个基于web的应用程序。我们想知道哪个日志系统最适合它,是Log4j还是与jdk集成的JUL(java.util.Logging)。就我而言,前者在开发人员中更受欢迎,并提供了更高的定制选项,但我不确定哪一种更容易适应spring

任何帮助都将不胜感激


谢谢

在开始使用log4j之前,请查看。Log4j不应该再用于新项目。如果您有需要任何日志框架的遗留代码,请使用将旧代码与logback(或log4j,如果必须的话)通信


您不应该使用JUL的主要原因是它实现了日志记录所需的最低限度,配置充其量也很难,如果您使用任何不使用它的组件,您将不得不处理两个日志记录框架。

据我所知,无论您在自己的代码中使用哪个日志记录框架,Spring对commons日志记录有很强的依赖性。您仍然可以在自己的日志记录中使用您喜欢的任何东西(我建议将SLF4J作为您的外观,使用logback作为您的实现),但是Spring内部需要commons日志记录。您是否希望依赖多个框架是您的选择;Spring使用commons日志记录,这是一种日志抽象工具,但存在sl4j没有的问题。Hibernate搬到了slf4j——我希望spring也这么做,但我认为他们在这方面没有任何计划


因此,只要您的日志抽象工具(使用slf4j)将日志记录到与您在spring中配置的commons日志记录相同的日志框架中,您就可以了。两个都有一个日志配置。您可能会找到一个用于commons和slf4j的logback适配器

由于其他回答实际上没有回答你的问题,我想我应该试试看


首先,java.util.logging非常可怕。使用和配置都很痛苦。Log4J在这两方面都更好。然而,你应该选择你最喜欢的。Spring使用commons日志记录,这反过来将使用log4j(如果在类路径上找到的话)或java.util.logging。换句话说,如果您的应用程序已经存在log4j,那么Spring将有效地使用它,您也应该如此。如果log4j还不存在,那么可以使用java.util.logging(如果您选择),或者将log4j添加到您的类路径并使用它。

duplicate JFYI:如果您想简化记录器的实例化,您可以尝试这个项目:切换日志框架被高估了!Log4j没有什么问题,它支持一系列出色的文件编写选项,并完成了它需要的工作。“请打开Javascript查看此菜单”-抱歉,logback,您失败了。他没有切换,他正在查看他的第一个日志框架。在这种情况下,他不应该从一个老一套的人开始。@Michael:我建议告诉作者。我真的无能为力:)既然我用的是Maven,我也不在乎。谢谢大家。现在和应该做的是,这里的一些人已经使用log4j,我们将尝试使用它。我建议使用logback,但您知道,当时间用完时,开发人员是多么不愿意尝试新事物。然而,它还没有完全被丢弃。仅仅测试nowCommons日志的选项很容易模仿,因此SLF4J提供了一个位于普通SLF4J API之上的Commons日志外观。通过这种方式,您可以将Spring与SLF4J(和Logback)一起使用。为了清楚起见:SLF4J附带了一个用于commons日志记录的适配器,因此您的项目中不需要commons-logging.jar。谢谢skaffman,现在我们正在尝试log4j,JUL看起来真的有点棘手。