在 maven jetty 7 插件中启用调试日志记录
2022-09-02 12:10:12
我正在使用最新的码头插件运行一个带有简单,的java webapp,但我似乎找不到一种方法来告诉码头将DEBUG消息输出到控制台(对于嵌入式码头实例,而不是插件本身)。它当前仅输出 WARN 和 INFO 消息。我尝试过设置 和 ,但它们不执行任何操作。我已经看过文档,但它似乎没有涵盖这一点。mvn jetty:run
-DDEBUG
-DVERBOSE
我正在使用最新的码头插件运行一个带有简单,的java webapp,但我似乎找不到一种方法来告诉码头将DEBUG消息输出到控制台(对于嵌入式码头实例,而不是插件本身)。它当前仅输出 WARN 和 INFO 消息。我尝试过设置 和 ,但它们不执行任何操作。我已经看过文档,但它似乎没有涵盖这一点。mvn jetty:run
-DDEBUG
-DVERBOSE
更新:好吧,我终于把事情做好了,这就是我所做的。
我的理解是,Jetty 7对特定的日志记录框架没有任何依赖关系,即使对于JSP引擎也是如此,因为Jetty 7使用JSP 2.1引擎。因此,您可以使用任何日志记录框架。在这里,我将使用日志。
首先在插件中添加依赖项,并将系统属性设置为指向配置文件:logback-classic
logback.configurationFile
<project>
...
<build>
...
<plugins>
<plugin>
<groupId>org.mortbay.jetty</groupId>
<artifactId>jetty-maven-plugin</artifactId>
<version>7.0.0.pre5</version>
<configuration>
<systemProperties>
<systemProperty>
<name>logback.configurationFile</name>
<value>./src/etc/logback.xml</value>
</systemProperty>
</systemProperties>
</configuration>
<dependencies>
<dependency>
<groupId>ch.qos.logback</groupId>
<artifactId>logback-classic</artifactId>
<version>0.9.15</version>
</dependency>
</dependencies>
</plugin>
...
</plugins>
</build>
...
</project>
然后添加配置文件。下面是一个最小配置:src/etc/logback.xml
<configuration>
<appender name="STDOUT" class="ch.qos.logback.core.ConsoleAppender">
<layout class="ch.qos.logback.classic.PatternLayout">
<Pattern>%d{HH:mm:ss.SSS} [%thread] %-5level %logger{36} - %msg%n</Pattern>
</layout>
</appender>
<root level="debug">
<appender-ref ref="STDOUT"/>
</root>
</configuration>
通过此设置,jetty 将输出 DEBUG 消息:
$ mvn jetty:run ... 00:31:33.089 [main] DEBUG org.mortbay.log - starting DefaultHandler@145e5a6 00:31:33.089 [main] DEBUG org.mortbay.log - started DefaultHandler@145e5a6 00:31:33.105 [main] DEBUG org.mortbay.log - starting RequestLogHandler@1e80761 00:31:33.106 [main] DEBUG org.mortbay.log - started RequestLogHandler@1e80761 00:31:33.106 [main] DEBUG org.mortbay.log - starting HandlerCollection@1485542 00:31:33.106 [main] DEBUG org.mortbay.log - started HandlerCollection@1485542 00:31:33.106 [main] DEBUG org.mortbay.log - starting org.mortbay.jetty.Server@a010ba 00:31:33.174 [main] DEBUG org.mortbay.log - started org.mortbay.jetty.nio.SelectChannelConnector$1@ee21f5 00:31:33.216 [main] INFO org.mortbay.log - Started SelectChannelConnector@0.0.0.0:8080 00:31:33.217 [main] DEBUG org.mortbay.log - started SelectChannelConnector@0.0.0.0:8080 00:31:33.217 [main] DEBUG org.mortbay.log - started org.mortbay.jetty.Server@a010ba [INFO] Started Jetty Server
资源:
为了扩展Pascal的答案,这是它与log4j一起工作的方式:
<project>
...
<build>
...
<plugins>
<plugin>
<groupId>org.mortbay.jetty</groupId>
<artifactId>jetty-maven-plugin</artifactId>
<version>7.0.0.pre5</version>
<configuration>
<systemProperties>
<systemProperty>
<name>log4j.configurationFile</name>
<value>file:${project.basedir}/src/test/resources/log4j.properties</value>
</systemProperty>
</systemProperties>
</configuration>
<dependencies>
<dependency>
<groupId>log4j</groupId>
<artifactId>log4j</artifactId>
<version>1.2.16</version>
</dependency>
<dependency>
<groupId>org.slf4j</groupId>
<artifactId>slf4j-api</artifactId>
<version>1.6.1</version>
</dependency>
<dependency>
<groupId>org.slf4j</groupId>
<artifactId>slf4j-log4j12</artifactId>
<version>1.6.1</version>
</dependency>
</dependencies>
</plugin>
...
</plugins>
</build>
...
</project>
这是您的 :${project.basedir}/src/test/resources/log4j.properties
log4j.rootLogger=INFO, CONSOLE
log4j.appender.CONSOLE=org.apache.log4j.ConsoleAppender
log4j.appender.CONSOLE.layout=org.apache.log4j.PatternLayout
log4j.appender.CONSOLE.layout.ConversionPattern = [%-5p] %c: %m\n
log4j.logger.org.eclipse.jetty.util.log=INFO
其他资源: