如何配置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