升级log4j后,Grails 2.5.4在使用run应用程序运行时不会记录任何内容



我正在尝试将grails 2.5.4应用程序中的log4j版本从1.2.17升级到2.17.2。我能够构建和部署war,并使所有日志按预期工作,但在本地使用grails run应用程序运行时,该应用程序不会记录任何内容。

为了升级版本,我对BuildConfig.groovy:进行了以下更改

inherits("global") {
excludes "grails-plugin-log4j", "log4j"
}
dependencies {
runtime 'org.apache.logging.log4j:log4j-core:2.17.2'
runtime 'org.apache.logging.log4j:log4j-api:2.17.2'
runtime 'org.apache.logging.log4j:log4j-jcl:2.17.2'
runtime 'org.apache.logging.log4j:log4j-slf4j-impl:2.17.2'
runtime 'org.apache.logging.log4j:log4j-1.2-api:2.17.2'

log4j2.properties:

rootLogger.level = INFO
rootLogger.additivity = false
rootLogger.appenderRefs = stdout
rootLogger.appenderRef.stdout.ref = STDOUT
appender.console.type = Console
appender.console.name = STDOUT
appender.console.layout.type = PatternLayout
appender.console.layout.pattern = %d [%t] %-5p %c{2} %x %m %n 

如果我删除log4j-1.2-api依赖项,则日志可以在本地运行应用程序,但在部署war时应用程序无法启动。主要错误日志为:

Caused by: java.lang.ClassNotFoundException: org.apache.log4j.Level

使用Log4j 2.17.1似乎已经解决了这个问题。

最新更新