2011-08-23 11 views
16

私は「桟橋:実行」を呼び出すよ、次のプラグイン設定と目標を:JettyのMavenプラグインのログを設定しますか?

<plugin> 
    <groupId>org.mortbay.jetty</groupId> 
    <artifactId>jetty-maven-plugin</artifactId> 
    <version>7.4.4.v20110707</version> 
    <configuration> 
    <scanIntervalSeconds>5</scanIntervalSeconds> 
    <connectors> 
     <connector implementation="org.eclipse.jetty.server.nio.SelectChannelConnector"> 
     <port>80</port> 
     </connector> 
    </connectors>   
    </configuration> 
</plugin> 

桟橋は私のプロジェクトの依存関係としてSLF4Jを宣言しているという事実にもかかわらず、SLF4Jには何をログに記録することを拒否。私が "-Dorg.eclipse.jetty.util.log.DEBUG = true"をJVMに渡すと、Jettyはたくさんのログを出力しますが、slf4jの代わりにstderrに行くようです。何か案は?

答えて

12

自分の質問に答える:

  1. プラグインは、プロジェクトの依存関係が表示されません。 <plugin>の中に<dependencies>を指定する必要があります。

  2. 具体的なslf4j実装(logbackなど)を指定する必要があります。 slf4jを指定するだけでは不十分です。

最終結果は、次のようになります。

<plugin> 
    <groupId>org.mortbay.jetty</groupId> 
    <artifactId>jetty-maven-plugin</artifactId> 
    <version>7.4.4.v20110707</version> 
    <configuration> 
     <scanIntervalSeconds>5</scanIntervalSeconds> 
     <connectors> 
     <connector implementation="org.eclipse.jetty.server.nio.SelectChannelConnector"> 
      <port>80</port> 
     </connector> 
     </connectors>   
    </configuration> 
    <dependencies> 
     <dependency> 
     <groupId>ch.qos.logback</groupId> 
     <artifactId>logback-classic</artifactId> 
     <version>0.9.29</version> 
     </dependency> 
    </dependencies> 
    </plugin> 
+0

注:ロギングを設定するにはmvn verify -Dlogback.configurationFile =/path/to/logback.xml – Mike

+0

バージョン9のアップデートはありますか?この設定を使用すると、Jettyからログが表示されません。 – user64141

+0

@ user64141私は変更を認識していません。つまり、私はもはやJetty Mavenプラグインを使用しません。私は今、通常のJavaクラスからJettyを呼び出します。 – Gili

5

ギリの答えを少し拡張します。 properties-maven-pluginを使うのは、システムプロパティをコマンドラインで指定するのではなく、システムプロパティを設定する便利な方法です。私はlogbackとlog4jの両方の例を提供します。このプラグインブロックを、giliの答えのjetty-maven-plugin設定に加えて、pom.xmlに追加します。

Logback:

<plugin> 
    <groupId>org.codehaus.mojo</groupId> 
    <artifactId>properties-maven-plugin</artifactId> 
    <version>1.0-alpha-2</version> 
    <executions> 
    <execution> 
     <goals> 
     <goal>set-system-properties</goal> 
     </goals> 
     <configuration> 
     <properties> 
      <!-- makes jetty log the exception if it fails to initialize slf4j --> 
      <property> 
      <name>org.eclipse.jetty.util.log.IGNORED</name> 
      <value>true</value> 
      </property> 
      <!-- Location of logback config --> 
      <property> 
      <name>logback.configurationFile</name> 
      <value>/path/to/logback.xml</value> 
      </property> 
     </properties> 
     </configuration> 
    </execution> 
    </executions> 
</plugin> 

のLog4j:また

<plugin> 
    <groupId>org.codehaus.mojo</groupId> 
    <artifactId>properties-maven-plugin</artifactId> 
    <version>1.0-alpha-2</version> 
    <executions> 
    <execution> 
     <goals> 
     <goal>set-system-properties</goal> 
     </goals> 
     <configuration> 
     <properties> 
      <!-- makes jetty log the exception if it fails to initialize slf4j --> 
      <property> 
      <name>org.eclipse.jetty.util.log.IGNORED</name> 
      <value>true</value> 
      </property> 
      <!-- this tells where the log4j configuration is --> 
      <property> 
      <name>log4j.configuration</name> 
      <value>file:./src/main/resources/log4j.properties</value> 
      </property> 
      <!-- this can be uncommented to debug startup log4j itself, 
       e.g. how it locates log4j.properties etc --> 
      <!-- 
      <property> 
      <name>log4j.debug</name> 
      <value></value> 
      </property> 
      --> 
     </properties> 
     </configuration> 
    </execution> 
    </executions> 
</plugin> 

log4jのため、天然に桟橋 - 達人 - プラグインの代わりにlogback、古典は、次の依存関係を使用する:

<plugin> 
    <groupId>org.mortbay.jetty</groupId> 
    <artifactId>jetty-maven-plugin</artifactId> 
    ... 
    <dependencies> 
    <dependency> 
     <groupId>org.slf4j</groupId> 
     <artifactId>slf4j-log4j12</artifactId> 
     <version>1.6.4</version> 
    </dependency> 
    </dependencies> 
</plugin> 
関連する問題