2011-08-23 35 views
16

tôi gọi là "cầu cảng: chạy" Mục tiêu với cấu hình Plugin sau:Định cấu hình ghi nhật ký cho plugin maven của Jetty?

<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 từ chối đăng nhập bất cứ điều gì để SLF4J mặc dù thực tế là dự án của tôi tuyên bố SLF4J như một sự phụ thuộc. Nếu tôi vượt qua "-Dorg.eclipse.jetty.util.log.DEBUG = true" cho JVM, Jetty xuất ra tấn log nhưng chúng dường như đi tới stderr thay vì slf4j. Bất kỳ ý tưởng?

Trả lời

12

Trả lời câu hỏi của riêng tôi:

  1. Plugins không thấy sự phụ thuộc dự án. Bạn cần chỉ định <dependencies> bên trong <plugin>.

  2. Bạn cần chỉ định triển khai thực hiện slf4j cụ thể, chẳng hạn như logback. Chỉ định slf4j là không đủ.

Các kết quả cuối cùng sẽ giống như thế này:

<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

Lưu ý, để định cấu hình ghi nhật ký chỉ cần cho maven biết nơi tập tin cấu hình của bạn là: mvn verify -Dlogback.configurationFile =/path/to/logback.xml – Mike

+0

Có bản cập nhật cho phiên bản 9 không? Tôi không thấy bất kỳ nhật ký nào từ Jetty khi tôi sử dụng cấu hình này. – user64141

+0

@ user64141 Tôi không biết bất kỳ thay đổi nào. Điều đó nói rằng, tôi không còn sử dụng plugin mứt Jetty nữa. Bây giờ tôi gọi Jetty từ một lớp Java bình thường. – Gili

5

Mở rộng câu trả lời Gili của một chút; sử dụng thuộc tính-maven-plugin là một cách thuận tiện để thiết lập các thuộc tính hệ thống thay vì phải chỉ định chúng trên dòng lệnh. Tôi cung cấp các ví dụ cho cả logback và log4j. Thêm khối plugin này vào tệp pom.xml của bạn ngoài cấu hình plugin jetty-maven trong câu trả lời của 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> 

Cũng cho log4j, tự nhiên sử dụng phụ thuộc sau cho cầu cảng-maven-plugin thay vì logback-cổ điển:

<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> 
Các vấn đề liên quan