java - Spring 5.0.2 中的 Log4jConfigurer

标签 java spring log4j slf4j

我使用的是 Spring 4.X.X 并使用以下设置来配置 Log4j。现在正在将其升级到 Spring 5.0.2,其中 Log4jConfigurer 类已被删除。 Spring 5.0.2 怎么实现?

<bean
    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:log4j.properties</value>
        </list>
    </property>
</bean>

最佳答案

非默认 Log4j 初始化需要 Log4JConfigurer,例如如果使用自定义配置文件名/位置,但您的配置文件位于默认位置:classpath:log4j.properties 因此您可以简单地删除 Log4jConfigurer 声明,Spring 将自动发现您的 log4j.properties

这里有一个可能的警告; Spring 5 使用 Log4j v2(遵循 Apache 对 log4j 1.x 的 EOL 声明),因此只要您使用 Log4j v2,Spring 5 就会自动检测它和您的 log4j.properties 文件,无需声明一个 Log4JConfigurer。如果您当前没有使用 Log4j v2,那么我认为您需要升级,因为 Spring 5 不支持使用 Log4j v1.x。

关于java - Spring 5.0.2 中的 Log4jConfigurer,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/48107537/

相关文章:

java - 问题运行 spring boot profile jar

java - 对网络应用程序流口水

log4j - log4j2 中记录器级别和 AppenderRef 级别属性之间的区别

java - 将变量从 JSP 传递到另一个 JSP

java - 什么是能够理解数据类型并可以在 Java 中实现的脚本语言?

java - 无法将表单服务转换为注释

java - 在 Maven 中,我如何发现依赖于特定依赖项的内容?

java - 无法运行 quartz 调度程序

java - Spring boot slf4j/log4j 禁用每日 RollingFilePolicy

java - 从php查询远程mysql数据库并获取结果集