最新のjettyプラグインを使用して単純なjavawebappを実行していmvn jetty:run
ますが、(プラグイン自体ではなく、埋め込まれたjettyインスタンスの)コンソールにDEBUGメッセージを出力するようにjettyに指示する方法が見つからないようです。現在、WARNメッセージとINFOメッセージのみを出力しています。設定-DDEBUG
してみまし-DVERBOSE
たが、何もしません。私はすでにドキュメントを見ましたが、これをカバーしていないようです。
5 に答える
更新:わかりました。ようやく動作するようになりました。これが私がやったことです。
Jetty 7 は JSP 2.1 エンジンを使用しているため、JSP エンジンであっても、Jetty 7 は特定のロギング フレームワークに依存していないと理解しています。したがって、任意のロギング フレームワークを使用できます。ここでは logback を使用します。
最初に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:実行 ... 00:31:33.089 [main] DEBUG org.mortbay.log - DefaultHandler@145e5a6 の開始 00:31:33.089 [メイン] DEBUG org.mortbay.log - DefaultHandler@145e5a6 を開始 00:31:33.105 [メイン] DEBUG org.mortbay.log - RequestLogHandler@1e80761 の開始 00:31:33.106 [メイン] DEBUG org.mortbay.log - RequestLogHandler@1e80761 を開始 00:31:33.106 [メイン] DEBUG org.mortbay.log - HandlerCollection@1485542 の開始 00:31:33.106 [メイン] DEBUG org.mortbay.log - HandlerCollection@1485542 を開始 00:31:33.106 [main] DEBUG org.mortbay.log - org.mortbay.jetty.Server@a010ba の開始 00:31:33.174 [main] DEBUG org.mortbay.log - org.mortbay.jetty.nio.SelectChannelConnector$1@ee21f5 を開始しました 00:31:33.216 [メイン] INFO org.mortbay.log - SelectChannelConnector@0.0.0.0:8080 を開始しました 00:31:33.217 [main] DEBUG org.mortbay.log - SelectChannelConnector@0.0.0.0:8080 を開始 00:31:33.217 [メイン] DEBUG org.mortbay.log - org.mortbay.jetty.Server@a010ba を開始 [情報] Jetty サーバーを開始しました
資力:
- Maven Jetty プラグインページ
- [ m2] jetty6 プラグインと log4jメッセージ/スレッド
- 第3 章: Logback ドキュメントのLogback 構成
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
その他のリソース:
この「mvn-Xjetty:run」を実行することもできます
Pascal と yegor256 の回答を拡張するには、次のように動作しSLF4J Simple logger
ます (依存関係を追加するだけでよいため、これが最も簡単なオプションですslf4j-simple
)。
<project>
...
<build>
...
<plugins>
<plugin>
<groupId>org.mortbay.jetty</groupId>
<artifactId>jetty-maven-plugin</artifactId>
<version>7.0.0.pre5</version>
<dependencies>
<dependency>
<groupId>org.slf4j</groupId>
<artifactId>slf4j-simple</artifactId>
<version>1.7.5</version>
</dependency>
</dependencies>
</plugin>
...
</plugins>
</build>
...
</project>
Maven pom から直接 SLF4J ロガーを構成することが可能です。デフォルトはhttp://www.slf4j.org/apidocs/org/slf4j/impl/SimpleLogger.htmlで説明されています)
たとえば、/tmp/output.log
より高いデバッグ レベル ( TRACE
)でファイルにログインします。
<configuration>
<systemProperties>
<systemProperty>
<name>org.slf4j.simpleLogger.logFile</name>
<value>/tmp/output.log</value>
</systemProperty>
<systemProperty>
<name>org.slf4j.simpleLogger.defaultLogLevel</name>
<value>trace</value>
</systemProperty>
</systemProperties>
</configuration>
このソリューションの方が便利だと思います
<resources>
<resource>
<directory>${project.basedir}/src/main/resources</directory>
<targetPath>${project.build.outputDirectory}</targetPath>
<includes>
<include>log4j.properties</include>
</includes>
</resource>
</resources>
ペーストも忘れずに
<overwrite>true</overwrite>
リソースプラグイン用