我有一个构建为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。
这取决于您如何设置类路径。log4j是否绑定到类路径上的slf4j(如果仅使用香草spring-boot- starter,就不会这样)?这是一个spring-boot-starter- log4j和一个示例,展示了如何使用它(在Maven中,但Gradle具有相同的功能)。
如果我是你,我只会使用logback。
NB Spring Boot 1.4不支持log4j(仅支持log4j2)。虽然在同一地方有一个示例。