2011-08-23 13 views
16

मैं "रन घाट": लागू कर रहा हूँजेटी के मेवेन प्लगइन के लिए लॉगिंग कॉन्फ़िगर करें? निम्न प्लग इन विन्यास के साथ लक्ष्य:

<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" पास करता हूं, जेटी कई लॉग आउटपुट करता है लेकिन वे slf4j के बजाय stderr पर जाते हैं। कोई विचार?

उत्तर

12

मेरे अपने प्रश्न का उत्तर देना:

  1. प्लगइन्स परियोजना निर्भरता दिखाई नहीं देता। आपको <plugin> के अंदर <dependencies> निर्दिष्ट करने की आवश्यकता है।

  2. आपको लॉगबैक जैसे कंक्रीट slf4j कार्यान्वयन को निर्दिष्ट करने की आवश्यकता है। 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 के लिए कोई अपडेट है? जब मैं इस कॉन्फ़िगरेशन का उपयोग करता हूं तो मुझे जेटी से कोई लॉग नहीं दिख रहा है। – user64141

+0

@ user64141 मुझे किसी भी बदलाव की जानकारी नहीं है। उस ने कहा, अब मैं जेटी मेवेन प्लगइन का उपयोग नहीं करता हूं। अब मैं जेटी को सामान्य जावा क्लास से आह्वान करता हूं। – Gili

5

जिली का जवाब थोड़ा विस्तार; गुणों का उपयोग करना-maven-plugin कमांड लाइन पर निर्दिष्ट करने के बजाय सिस्टम गुण सेट करने का एक सुविधाजनक तरीका है। मैं लॉगबैक और log4j दोनों के लिए उदाहरण प्रदान करता हूं। गिली के जवाब में जेटी-मेवेन-प्लगइन कॉन्फ़िगरेशन के अतिरिक्त इस प्लगइन ब्लॉक को अपने 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 के लिए, स्वाभाविक रूप से निम्नलिखित निर्भरता घाट-Maven-प्लगइन 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> 
संबंधित मुद्दे