我有一个spring-boot项目,我正在从Log4j转换到Log4j2 . 我已按照文档here中的步骤操作 . 具体来说,我已经修改了我的log4j.xml以符合log4j2标准,并将其重命名为log4j2.xml我已经通过使用log4j2.xml中的 <Configuration status="debug">
设置启用了对log4j2的调试,因此我可以看到log4j2启动 . 在启动我的 Spring 季启动应用程序时,我使用以下系统设置:
-Dlog4j.configurationFile = log4j2.xml -Dorg.jboss.logging.provider = log4j2
我可以在调试输出中看到我的log4j2.xml启动appenders等,然后最后的log4j2消息说明:
日志提供程序:通过系统属性找到的org.jboss.loggin.Log4j2LoggerProvider
我正在使用以下 jar :
编译组:'org.slf4j',名称:'slf4j-log4j12',版本:'1.7.12'编译组:'org.apache.logging.log4j',名称:'log4j-api',版本:'2.4 .1'编译组:'org.springframework.boot',名称:'spring-boot-starter-log4j2',版本:'1.4.0.RELEASE'
但是,我仍然收到来自Log4j的消息:
log4j:WARN没有为logger log4j找到appender:WARN请正确初始化log4j系统log4j WARN有关详细信息,请参阅http://logging.apache.org/log4j/1.2/faq.html#noconfig
所以我的基本问题是如何关闭log4j并仅使用log4j2?我将从log4j2收到一条消息,它会明确告诉我何时正确配置它?是否有任何特殊配置我缺少使用Log4j2?
3 回答
您必须仅对log4j2使用这些依赖项 .
您还需要从spring-boot中排除spring-boot-starter-logging . 像这样
Log4j2常见问题解答现在excluding conflicting dependencies上有一个项目 .
我想你需要这个:
我的项目是使用log4j2和spring-boot .
以下是pom.xml的一部分 . 请试一试 .