将 log4j2.properties 配置到 Spring Boot 中的问题(使用 gradle)

Posted

技术标签:

【中文标题】将 log4j2.properties 配置到 Spring Boot 中的问题(使用 gradle)【英文标题】:Problem with configuring log4j2.properties into spring boot( using gradle) 【发布时间】:2019-10-26 15:14:29 【问题描述】:

我在 scr/main/resources 中添加了一个 log4j2.properties 文件,但它没有受到影响。 log4j2.properties 不应该被自己检测到。如何检查它是否未被检测到??

Log4j2.properties 文件

status = error
name = PropertiesConfig

filters = threshold

filter.threshold.type = ThresholdFilter
filter.threshold.level = debug

appenders = console

appender.console.type = Console
appender.console.name = STDOUT
appender.console.layout.type = PatternLayout
appender.console.layout.pattern = %dyyyy-MM-dd HH:mm:ss %-5p %c1:%L - %m%n

rootLogger.level = debug
rootLogger.appenderRefs = stdout
rootLogger.appenderRef.stdout.ref = STDOUT

【问题讨论】:

【参考方案1】:

Spring Boot 使用 Logback 作为日志框架。

如果你想使用 Log4j2 你必须做一些配置。

排除默认记录器并添加log4j2启动器依赖:

dependencies 
    compile 'org.springframework.boot:spring-boot-starter-web'
    compile 'org.springframework.boot:spring-boot-starter-log4j2'


configurations 
    all 
        exclude group: 'org.springframework.boot', module: 'spring-boot-starter-logging'
    

据我所知,Log4j2 是使用 XML 文件而不是属性文件配置的。

请在官方 Spring Boot 参考文档中找到所有信息:

https://docs.spring.io/spring-boot/docs/current/reference/htmlsingle/#howto-configure-log4j-for-logging

【讨论】:

以上是关于将 log4j2.properties 配置到 Spring Boot 中的问题(使用 gradle)的主要内容,如果未能解决你的问题,请参考以下文章

log4j2.properties 弹性集群日志滚动和压缩问题

log4j2.properties 无法从 Docker Environment 或 Kubernetes Env 读取变量

Elasticsearch 可以热重载 log4j2.properties 吗?

日志记录:在 Spring Boot 中使用 log4j2.properties 文件实现 Log4j2

如何在 Spring Boot 中获取 log4j2.properties 文件以从 pom.xml 读取文件名

将 LogStash Log4j 配置升级到 Log4j2