小编典典

Spring Boot如何使用log4j.xml配置文件?

spring-boot

我有一个构建为jar文件的简单Spring Boot应用程序。我在src / main / resources /
log4j.xml中有一个log4j.xml文件,它看起来像这样(来自log4j文档的基本示例文件):

<?xml version="1.0" encoding="UTF-8" ?>
<!DOCTYPE log4j:configuration SYSTEM "log4j.dtd">
<log4j:configuration xmlns:log4j="http://jakarta.apache.org/log4j/">
    <appender name="stdout" class="org.apache.log4j.ConsoleAppender">
        <layout class="org.apache.log4j.PatternLayout">
            <!-- Pattern to output the caller's file name and line number -->
            <param name="ConversionPattern" value="%5p [%t] (%F:%L) - %m%n"/>
        </layout>
    </appender>
    <appender name="R" class="org.apache.log4j.RollingFileAppender">
        <param name="file" value="/tmp/logs/sample.log"/>
        <param name="MaxFileSize" value="100KB"/>
        <!-- Keep one backup file -->
        <param name="MaxBackupIndex" value="1"/>
        <layout class="org.apache.log4j.PatternLayout">
            <param name="ConversionPattern" value="%p %t %c - %m%n"/>
        </layout>
    </appender>
    <root>
        <priority value="debug"/>
        <appender-ref ref="stdout"/>
        <appender-ref ref="R"/>
    </root>
</log4j:configuration>

但是,日志仅记录到控制台(/tmp/logs/sample.log永远不会创建),因为它会忽略log4j.xml文件。

该文件显示在jar的根目录中,我认为这是正确的。要获取此日志记录配置,我还需要做什么?

如果有什么不同,则该项目使用的是Gradle,而不是Maven。


阅读 346

收藏
2020-05-30

共1个答案

小编典典

这取决于您如何设置类路径。log4j是否绑定到类路径上的slf4j(如果仅使用香草spring-boot-
starter,就不会这样)?这是一个spring-boot-starter-
log4j和一个示例,展示了如何使用它(在Maven中,但Gradle具有相同的功能)。

如果我是你,我只会使用logback。

NB Spring Boot 1.4不支持log4j(仅支持log4j2)。虽然在同一地方有一个示例。

2020-05-30