java - Log4j 未从资源文件夹中获取 log4j.properties 文件

标签 java spring maven logging log4j

我正在开发 spring 项目并使用 log4j 进行日志记录。但 log4j 使用其默认日志记录样式,而不是从 log4j.properties 文件中获取属性。 “log4.properties”位于资源文件夹下。这是我的 pom.xml

<parent>
    <groupId>org.springframework.boot</groupId>
    <artifactId>spring-boot-starter-parent</artifactId>
    <version>1.3.6.RELEASE</version>
</parent>

<dependencies>
    <dependency>
        <groupId>org.springframework.boot</groupId>
        <artifactId>spring-boot-starter-web</artifactId>
    </dependency>
    <dependency>
        <groupId>org.springframework.boot</groupId>
        <artifactId>spring-boot-starter-test</artifactId>
        <scope>test</scope>
    </dependency>
    <dependency>
        <groupId>org.springframework.boot</groupId>
        <artifactId>spring-boot-starter-data-jpa</artifactId>
    </dependency>
    <dependency>
        <groupId>log4j</groupId>
        <artifactId>log4j</artifactId>
        <version>1.2.17</version>
    </dependency>
</dependencies>

这是我的 log4j.properties 文件

# Root logger option
log4j.rootLogger=DEBUG, stdout, file

# Direct log messages to a log file
log4j.appender.file=org.apache.log4j.RollingFileAppender
log4j.appender.file.File=logs/logging.log
log4j.appender.file.MaxFileSize=10MB
log4j.appender.file.MaxBackupIndex=10
log4j.appender.file.layout=org.apache.log4j.PatternLayout
log4j.appender.file.layout.ConversionPattern=%d{yyyy-MM-dd HH:mm:ss} %-5p %c{1}:%L - %m%n

# Direct log messages to stdout
log4j.appender.stdout=org.apache.log4j.ConsoleAppender
log4j.appender.stdout.Target=System.out
log4j.appender.stdout.layout=org.apache.log4j.PatternLayout
log4j.appender.stdout.layout.ConversionPattern=%d{yyyy-MM-dd HH:mm:ss} %-5p %c{1}:%L - %m%n

最佳答案

默认情况下,Spring Boot 通过 Logback ( http://logback.qos.ch ) 配置日志记录,以在 INFO 级别记录到控制台。

将 Logback 替换为另一个日志记录实现 一般来说,您永远不需要切换日志记录实现; Logback 应该很适合你。但是,如果您决定使用 Log4j 或 Log4j2,则需要更改依赖项以包含您想要使用的日志记录实现的适当启动器并排除 Logback。 对于 Maven 构建,您可以通过排除根启动器依赖项传递解析的默认日志启动器来排除 Logback:

Spring Boot 实际应用 克雷格墙

<dependencies>
...
<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-log4j2</artifactId>
</dependency>

...
</dependencies>

关于java - Log4j 未从资源文件夹中获取 log4j.properties 文件,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/40435623/

相关文章:

java - 数组输入的 Jolt 变换 JSON 规范

java - 从插件写入 'Problems' 表或 'Console'

java - 可以在 Listener 类中使用 Adapter 吗?

java - java.lang.String 的 Spring 实例化异常

eclipse - Eclipse 中不可解析的父 POM

java - Spring 无法在 Controller 中 Autowiring 存储库

java - 使用 Gluon ShareService 共享多个文件(图片和 txt)

spring - 为什么我的 RestTemplate ClientHttpRequestInterceptor 没有被调用?

java - 在 Spring Boot 中使用 CrudRepository 检索 DiscriminatorColumn

maven - 阻止插件执行生命周期阶段