2011-08-23 13 views
16

jestem powołując się na „jetty: run” cel o następującej konfiguracji pluginu:Konfigurowanie rejestrowania dla wtyczki Jetty's 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> 

Jetty odmawia niczego do slf4j pomimo faktu, że mój projekt deklaruje slf4j jako zależność zalogować. Jeśli przekażę "-Dorg.eclipse.jetty.util.log.DEBUG = true" do JVM, Jetty wypuści tony dzienników, ale zdają się przechodzić na stderr zamiast na slf4j. Jakieś pomysły?

Odpowiedz

12

Odpowiadając na moje własne pytanie:

  1. Wtyczki nie widzą zależności projektowych. Musisz podać <dependencies> wewnątrz <plugin>.

  2. Musisz podać konkretną implementację slf4j, taką jak logback. Określenie slf4j nie wystarczy.

końcowy wynik powinien wyglądać mniej więcej tak:

<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

Uwaga, aby skonfigurować rejestrowanie po prostu niech specjaliści dowiedzą się, gdzie znajduje się plik konfiguracyjny: mvn verify -Dlogback.configurationFile =/path/to/logback.xml – Mike

+0

Czy jest aktualizacja dla wersji 9? Nie widzę żadnych dzienników z Jetty, kiedy używam tej konfiguracji. – user64141

+0

@ user64141 Nie jestem świadomy żadnych zmian. Powiedział, że nie używam już wtyczki Jetty maven. Teraz wzywam Jetty z normalnej klasy Java. – Gili

5

Rozszerzanie odpowiedź Gili trochę; używanie właściwości-maven-plugin jest wygodnym sposobem ustawiania właściwości systemu zamiast podawania ich w wierszu poleceń. Podaję przykłady zarówno dla logback, jak i dla log4j. Dodaj ten blok wtyczki do swojego pom.xml oprócz konfiguracji pomostu-maven-plugin w odpowiedzi Gili.

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> 

również dla log4j, naturalnie użyć następującego zależność na molo-maven-plugin zamiast logback-Classic:

<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> 
Powiązane problemy