gpt4 book ai didi

maven - SLF4J/Log4J 未在 jetty-maven-plugin 中初始化

转载 作者:行者123 更新时间:2023-12-04 22:49:45 24 4
gpt4 key购买 nike

运行 jetty-maven-plugin 时出现此错误:

[INFO] --- jetty-maven-plugin:7.6.1.v20120215:start (start-jetty) @ rest ---
log4j:WARN No appenders could be found for logger (org.eclipse.jetty.util.log).
log4j:WARN Please initialize the log4j system properly.
log4j:WARN See http://logging.apache.org/log4j/1.2/faq.html#noconfig for more info.

该项目是一场 war ,其中包含 WEB-INF/classes 中的 log4j.properties .

我还将以下属性传递给插件,只是为了查看发生了什么(特定的 log4j.properties 文件也存在于下面的位置):
<!-- Log4J settings -->
<systemProperty>
<name>log4j.configuration</name>
<value>file://${project.build.testOutputDirectory}/log4j.properties</value>
</systemProperty>
<systemProperty>
<name>log4j.debug</name>
</systemProperty>

webapp 中的登录工作正常。但是,我对错误感到困惑。

我在项目中有这些依赖项:
<dependency>
<groupId>org.slf4j</groupId>
<artifactId>slf4j-log4j12</artifactId>
</dependency>
<dependency>
<groupId>org.slf4j</groupId>
<artifactId>jcl-over-slf4j</artifactId>
</dependency>
<dependency>
<groupId>org.slf4j</groupId>
<artifactId>slf4j-core</artifactId>
</dependency>

此外,当测试(需要 Jetty)开始运行时,我确实看到以下输出:
log4j: Using URL [file:/project/foo/rest/target/test-classes/log4j.properties] for automatic log4j configuration.
log4j: Reading configuration from URL file:/project/foo/rest/target/test-classes/log4j.properties
log4j: Parsing for [root] with value=[ERROR, console].
log4j: Level token is [ERROR].
log4j: Category root set to ERROR
log4j: Parsing appender named "console".
log4j: Parsing layout options for "console".
log4j: Setting property [conversionPattern] to [%d %p %c - %m%n].
log4j: End of parsing for "console".
log4j: Parsed "console" options.
log4j: Parsing for [project.foo] with value=[DEBUG].
log4j: Level token is [DEBUG].
log4j: Category project.foo set to DEBUG
log4j: Handling log4j.additivity.project.foo=[null]
log4j: Finished configuring.

有人能告诉我为什么 Jetty 不开心吗?

最佳答案

另一种选择是对 log4j.properties 使用“file:///”样式的 url,如下所示:

 <plugin>
<groupId>org.mortbay.jetty</groupId>
<artifactId>jetty-maven-plugin</artifactId>
<version>8.1.10.v20130312</version>
<configuration>
<systemProperties>
<systemProperty>
<name>log4j.configuration</name>
<!-- have to use file:/// url since -->
<!-- Jetty is using classloader -->
<!-- before the webapp classloader is ready -->
<value>file:///${basedir}/src/main/resources/log4j.properties</value>
</systemProperty>
<configuration>
<dependencies>
<dependency>
<groupId>org.slf4j</groupId>
<artifactId>slf4j-log4j12</artifactId>
<version>1.6.6</version>
</dependency>
</dependencies>
</plugin>

我遇到了同样的问题,Jetty 正在使用不包含我的项目源代码的类加载器查找 log4j.properties 文件。所以它一直在提示“log4j:WARN 找不到记录器的附加程序(org.eclipse.jetty.util.log)。”。但是这个解决方法解决了它,我能够看到日志消息并通过 log4j 控制它们。

关于maven - SLF4J/Log4J 未在 jetty-maven-plugin 中初始化,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/9995347/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com