How to have Spring boot use a log4j.xml configuration file?

旧城冷巷雨未停 提交于 2019-12-03 13:13:28

It depends how you set up your classpath. Is the log4j binding to slf4j on your classpath (it won't be if you just use the vanilla spring-boot-starter)? The is a spring-boot-starter-log4j and a sample showing how to use it (in Maven, but Gradle has the same features).

If I were you I'd just use logback.

N.B. Spring Boot 1.4 does not support log4j (only log4j2). There's a sample for that in the same place though.

If we use Spring-boot and at the same time also trying to use logging explicitly using log4j, the spring-boot in built logging takes higher precedence and hence log4j configuration is never read. As stated above, the best solution in this case is to exclude logging from the below two spring-boot dependencies.

    <dependency>
        <groupId>org.springframework.boot</groupId>
        <artifactId>spring-boot-starter-actuator</artifactId>
        <exclusions>
            <exclusion>
                <groupId>org.springframework.boot</groupId>
                <artifactId>spring-boot-starter-logging</artifactId>
            </exclusion>
        </exclusions>
    </dependency>

    <dependency>
        <groupId>org.springframework.boot</groupId>
        <artifactId>spring-boot-starter-test</artifactId>
        <exclusions>
            <exclusion>
                <groupId>org.springframework.boot</groupId>
                <artifactId>spring-boot-starter-logging</artifactId>
            </exclusion>
        </exclusions>
    </dependency>
易学教程内所有资源均来自网络或用户发布的内容,如有违反法律规定的内容欢迎反馈
该文章没有解决你所遇到的问题?点击提问,说说你的问题,让更多的人一起探讨吧!