如何配置Spring和SLF4J,以便可以进行日志记录?

我有一个要登录的Maven&Spring应用程序。我热衷于使用SLF4J。

我想将所有配置文件放入包含log4j.xml的目录{classpath} / config中,然后使用spring bean进行初始化。

例如

<bean id="log4jInitialization" class="org.springframework.beans.factory.config.MethodInvokingFactoryBean">

<property name="targetClass" value="org.springframework.util.Log4jConfigurer"/>

<property name="targetMethod" value="initLogging"/>

<property name="arguments">

<list>

<value>classpath:config/log4j.xml</value>

</list>

</property>

</bean>

但是,我得到此警告,没有日志记录。

log4j:WARN找不到记录器的附加程序(org.springframework.context.support.ClassPathXmlApplicationContext)。log4j:WARN请正确初始化log4j系统。log4j:WARN有关更多信息,请参见http://logging.apache.org/log4j/1.2/faq.html#noconfig。

我到处搜索,找不到关于此设置的简单示例。有任何想法吗?

回答:

除了Jatin的答案:

Spring使用Jakarta Commons Logging作为日志记录API。为了登录到slf4j,您需要确保commons-

logging不在classpath上。jcl-over-slf4j是公共记录的替代罐。

如果您使用的是maven,则可以mvn dependency:tree使用依赖项排除功能来检测commons-

logging的使用来源,并将其从需要它的所有依赖项中排除。mvn

dependency:tree但是,您可能需要运行几次,因为它仅显示了传递依赖项的首次出现。

<dependency>

<groupId>org.springframework</groupId>

<artifactId>spring-context</artifactId>

<version>${org.springframework.version}</version>

<exclusions>

<exclusion>

<artifactId>commons-logging</artifactId>

<groupId>commons-logging</groupId>

</exclusion>

</exclusions>

</dependency>

以上是 如何配置Spring和SLF4J,以便可以进行日志记录? 的全部内容, 来源链接: utcz.com/qa/421135.html

回到顶部