Spring中的Netty和slf4j Logger Factory

时间:2013-12-04 19:54:41

标签: spring configuration netty slf4j

我的基本问题是。如何配置Netty在Spring中使用slf4j?我一直在Spring中得到下面的错误但不是使用带有log4j桥的slf4j jar和路径中的api的eclipse。我使用的是Spring Tools套件,Spring 3.2.3和Netty 4(post jboss)。

Exception in thread "main" java.lang.NoClassDefFoundError: org/slf4j/LoggerFactory

在尝试设置默认日志记录工厂后,程序在我实例化连接组的行失败。

我是Netty和slf4j的新手。我一直在反对这个问题,并对Stack Overflow和互联网进行了一些研究。我设法让netty在eclipse中使用slf4j并使用了Internal Logger Factory。我尝试以类似于log4j的方式配置slf4j(带有appender的属性文件)。

我通过以下两种方式使用以下代码对InternalLoggerFactory进行了适当的导入。

InternalLoggerFactory.setDefaultFactory(new Slf4JLoggerFactory());

InternalLoggerFactory.setDefaultFactory(Slf4JLoggerFactory.getDefaultFactory());

这些行是在我初始化连接组之前放置的,但我也在我的主应用程序/驱动程序的主方法中尝试过它们。

感谢您的帮助。我会非常感激。

1 个答案:

答案 0 :(得分:1)

'org.slf4j.LoggerFactory'是'slf4j-api-1.75.jar'的一部分,所以很可能你有一些部署问题。 - 检查此jar是否真的在应用程序的类路径中,或者如果您有Web应用程序,请检查此jar是否已部署到您的应用程序服务器。

另一件事(可能不是您的问题的原因)是您有log4j-1.2.16.jarlog4j-to-slf4j-2.0-beta8.jar。这将导致其他问题,因为log4j-to-slf4j是一个log4j到slf4j桥,它将log4j记录器转发到slf4j。在你手上,你也可以在你的类路径中拥有真正的log4j。我会删除log4j-1.2.16.16。我希望slf4j docu能比我更好地描述它。

兄弟俩的另一点是,你使用不同版本的slf4j。我强烈建议对所有slf4j库使用相同的版本!