我升级到log4j2
,并面临这个问题,我可以解决:
log4j:WARN No appenders could be found for logger (org.springframework.core.env.StandardEnvironment).
log4j:WARN Please initialize the log4j system properly.
log4j:WARN See http://logging.apache.org/log4j/1.2/faq.html#noconfig for more info.
我在Apache文档中的Log4j 1.x API Bridge部分解决了这个问题。我将以下代码添加到pom.xml
中:
<dependency>
<groupId>org.apache.logging.log4j</groupId>
<artifactId>log4j-jcl</artifactId>
<version>2.17.2</version>
</dependency>
然而,另一个问题出现了:
log4j:WARN No appenders could be found for logger (com.mchange.v2.log.MLog).
log4j:WARN Please initialize the log4j system properly.
log4j:WARN See http://logging.apache.org/log4j/1.2/faq.html#noconfig for more info.
这很奇怪,因为我已经把log4j-jcl
加到pom.xml
上了。我该怎么解决这个问题呢?
很难提供一个MWE。任何额外的信息,你需要的,请在评论中提到。
注意:请避免任何试图为log4j 1添加后门或为v1创建log4j.properties
的解决方案。我遇到问题只是因为我在避免log4j v1。
mvn dependency:tree|grep log4
[INFO] +- org.apache.logging.log4j:log4j-api:jar:2.17.2:compile
[INFO] +- org.apache.logging.log4j:log4j-core:jar:2.17.2:compile
[INFO] +- org.apache.logging.log4j:log4j-jcl:jar:2.17.2:compile
。
mvn dependency:tree
...
[INFO] +- org.hibernate:hibernate-c3p0:jar:5.6.7.Final:compile
[INFO] | \- com.mchange:c3p0:jar:0.9.5.5:compile
[INFO] | \- com.mchange:mchange-commons-java:jar:0.2.19:compile
...
log4j2.properties:
...
log4j.logger.org_apache_commons_beanutils.name = org.apache.commons.beanutils
log4j.logger.org_apache_commons_beanutils.level = FATAL
logger.org_hibernate.name = org.hibernate
logger.org_hibernate.level = FATAL
logger.org_hibernate_tool.name = org.hibernate.tool
logger.org_hibernate_tool.level = FATAL
logger.org_hibernate_mapping.name = org.hibernate.mapping
logger.org_hibernate_mapping.level = FATAL
logger.org_hibernate_hql.name = org.hibernate.hql
logger.org_hibernate_hql.level = FATAL
logger.org_hibernate_dialect.name = org.hibernate.dialect
logger.org_hibernate_dialect.level = FATAL
logger.org_hibernate_engine.name = org.hibernate.engine
logger.org_hibernate_engine.level = FATAL
logger.com_mchange.name = com.mchange
logger.com_mchange.level = FATAL
...
。
1条答案
按热度按时间vmdwslir1#
您遇到的问题从一开始就是相同的:您可以在类路径上拥有
log4j:log4j
工件或其克隆ch.qos.reload4j:reload4j
。添加
log4j-jcl
是一种缓解措施:使用Jakarta Commons Logging的库,现在在你的应用程序中使用Log4j2。然而,使用Log4j 1.x的库直接使用上面提到的工件之一。要解决这个问题,只需将
log4j
和reload4j
从使用它的工件中排除,并添加:编辑:根据您对Eclipse特定
.classpath
文件的注解推测,您正在从Eclipse运行您的应用程序。Eclipse不区分普通依赖项和可选依赖项。mchange-commons-java
对log4j
具有可选依赖项,这就是为什么它没有出现在mvn dependency:tree
列表中。但是Eclipse将其视为普通依赖项,并将其添加到运行时类路径中。