19

最新のjettyプラグインを使用して単純なjavawebappを実行していmvn jetty:runますが、(プラグイン自体ではなく、埋め込まれたjettyインスタンスの)コンソールにDEBUGメッセージを出力するようにjettyに指示する方法が見つからないようです。現在、WARNメッセージとINFOメッセージのみを出力しています。設定-DDEBUGしてみまし-DVERBOSEたが、何もしません。私はすでにドキュメントを見ましたが、これをカバーしていないようです。

4

5 に答える 5

18

更新:わかりました。ようやく動作するようになりました。これが私がやったことです。

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 サーバーを開始しました

資力:

于 2010-03-03T16:13:30.860 に答える
11

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

その他のリソース:

于 2011-02-26T08:47:46.277 に答える
7

この「mvn-Xjetty:run」を実行することもできます

于 2011-07-16T02:57:19.963 に答える
2

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>
于 2015-07-09T17:37:28.413 に答える
0

このソリューションの方が便利だと思います

    <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>

リソースプラグイン用

于 2012-01-15T18:23:43.613 に答える