转载

使用Spring和Hibernate的Java Logging系统进行封装

在部署我的Spring / Hibernate应用程序时,我收到以下与日志记录有关的警告:

log4j:WARN No appenders could be found for logger (org.springframework.web.context.ContextLoader).
log4j:WARN Please initialize the log4j system properly.

对我来说,令人惊讶的是缺少Google / SO搜索的信息.唯一相关的是这个SO 0 Problem with Commons Logging / Log4j setup in spring webapp with tomcat 6

不过,这甚至超出了我.有人可以澄清这里播放的日志记录系统,或者指出一个RECENT资源(有一些古老的谷歌搜索结果并不真正适用).具体来说,我正在摔跤的问题是:

> commons-logging,log4j,slf4j和JCL之间的区别.我的理解是,slf4j是一个包装器,而commons-logging和log4j是实际的实现.我不知道JCL在哪里.

>如何配置Spring的日志记录.在web.xml文件中,我需要一个log4j.properties文件还是一个log4j.xml文件?在哪里去,在WEB-INF?在我的applicationContext.xml文件中有什么东西吗? (对不起,我需要从零开始).

>我在我的项目中使用Hibernate,并通过Maven使用Hibernate.似乎Hibernate使用slf4j-simple.我看到警告说,我不能在类路径上都有slf4j-simple和slf4j-log4j.我没有包括slf4j-log4j作为依赖,但是Hibernate必须包含它.我如何解决这个问题?我可以强制Hibernate使用log4j吗?

任何帮助将不胜感激.谢谢.

编辑:

感谢所有的答案到目前为止.我正在提供这些建议.春天的网络应用程序呢?我看到了一些监听器和参数的例子,并且没有放在web.xml文件中.这也是需要的吗?

> commons-logging 和 SLF4J 都是围绕其他日志记录实现的API包装器. SLF4J是更现代的两个,而且更有能力. Log4j 是一个日志记录实现,几乎是defacto标准. JUL (java.util.logging的简称)是JRE附带的(通常很糟糕的)日志记录实现.另一个日志的实现是 logback ,它正在缓慢地获得牵引力,但并不普遍.

log4j.properties和log4j.xml是配置log4j的不同方式,两者同样有效.您使用哪一个取决于您,尽管一些应用程序服务器指定一个或另一个.阅读 log4j manual ,了解如何配置.

>如果Hibernate使用SLF4J作为其API,那就是Hibernate开发人员的选择.但是,您可以选择SLF4J将委托哪个日志记录实现.再次阅读 slf4j manual

,了解如何选择您选择的实现.

是的,这很混乱.给予一个公开的选择,SLF4J和Logback是最有能力的组合,但你通常不会有开放的选择.不同的框架(如Hibernate和Spring)可能会使用不同的日志记录API,通常是commons-logging或SLF4J,但是您可以将所有这些API最终记录到相同的底层实现(通常为log4j).

代码日志版权声明:

翻译自:http://stackoverflow.com/questions/2113350/baffled-by-java-logging-systems-with-spring-and-hibernate

原文  https://codeday.me/bug/20181016/290846.html
正文到此结束
Loading...