2012-12-18 10 views
11

के दौरान लॉग 4 जे लॉग अक्षम करना आईडीई में विकास करते समय ट्रेस और डीबग लॉग सहायक हो सकते हैं, लेकिन निर्माण के दौरान मुझे उन रेखाओं को काफी परेशान करना पड़ता है, और मैवेन या अन्य बिल्ड टूल्स द्वारा मुद्रित रिपोर्ट को खराब कर दिया जाता है।मैवेन टेस्ट चरण

यह log4j -Dlog4j.rootLogger=OFF की तरह एक प्रणाली संपत्ति का सम्मान Maven या कुछ और जो परियोजना फाइलों पर परिवर्तन की आवश्यकता नहीं है के साथ उपयोग करने के लिए अच्छा होगा। मुझे पता है कि मैं -Dlog4j.configuration=alternateconfig.props निर्दिष्ट कर सकता हूं लेकिन मैं यह जानने के लिए यहां पूछ रहा हूं कि किसी को मैन्युअल हस्तक्षेप के साथ बिल्ड प्रक्रिया के दौरान लॉगिंग अक्षम करने का एक बेहतर तरीका मिला है या नहीं। अर्थात। कुछ जावा क्लास मेवेन को कॉलर के रूप में पहचानते हैं जो log4j, या अन्य स्मार्ट समाधान अक्षम करता है।

कोई संकेत?

नोट्स:

[1]: पहले से ही करने की कोशिश की, और यह does not काम।

[2]: कि बहुत अच्छी है, लेकिन यह Maven के साथ अच्छी तरह से काम करने के लिए (शायद अचूक स्किप के यह)

+1

2 * * काम करता है, यदि आप निश्चित फ़ायरफ़ॉक्स के JVM विकल्पों को अपडेट करते हैं, और यह सबसे अच्छा समाधान IMHO – artbristol

+0

@artbristol है जो वादा करता है। तो, यह एक ऐसा विकल्प होगा जो केवल मेवेन बिल्ड को प्रभावित करता है, यही वही है जो मैं ढूंढ रहा हूं। मैं इस संभावना के रूप में जांच करूँगा। –

उत्तर

15

जैसा कि @artbristol (प्रश्न पर टिप्पणी) द्वारा समझाया गया है, इसे निश्चित रूप से कॉन्फ़िगर किया जा सकता है। यह pom.xml में इस तरह से किया जा सकता है:

 <plugin> 
      <artifactId>maven-surefire-plugin</artifactId> 
      <version>2.5</version> 
      <configuration> 
       <forkMode>always</forkMode> 
       <systemPropertyVariables> 
        <log4j.configuration>file:${basedir}/etc/log4j-silent.properties</log4j.configuration> 
       </systemPropertyVariables> 
      </configuration> 
     </plugin> 

फिर, चाल है निम्न सेटिंग के साथ फ़ाइल ${basedir}/etc/log4j-silent.properties होने:

log4j.rootLogger=OFF 

log4j पूरी तरह से अक्षम हो जाता है के दौरान परीक्षण में चलता है मेवेन, और सब कुछ सामान्य रूप से आईडीई में काम करता है।

एक बेहतर समाधान अतिरिक्त कॉन्फ़िगरेशन फ़ाइल नहीं होगी; लेकिन अब तक यह नहीं मिल रहा है।

+2

मैंने अपने परीक्षण/संसाधन/निर्देशिका में log4j.properties फ़ाइल डालकर अपनी चुप लॉगर विधि का उपयोग किया rootLogger = इसमें लाइन बंद करें। यह परीक्षण के वर्गपाथ में कॉपी हो जाता है और उठाया जाता है। कोई लॉगर कॉन्फ़िगरेशन के बारे में कोई शिकायत नहीं, और कोई लॉगर आउटपुट नहीं :) – Jazzepi

7

कोई appender के साथ एक परीक्षण log4j विन्यास फाइल निर्दिष्ट नहीं लगता है।

उदाहरण के लिए यदि आपके पास src/main/resources में log4j.properties हैं, तो इसे src/test/resouces पर कॉपी करें और या तो एपेंडर को हटा दें या लॉग स्तर को घातक पर सेट करें।

+2

जो आईडीई में भी लॉगिंग को अक्षम कर देगा (यह इंटेलिजे आईडीईए में करता है, मुझे लगता है कि यह ग्रहण में नहीं है) –

2

पिछले उत्तरों के आधार पर, मैं का उपयोग करें:

<plugin> 
    <artifactId>maven-surefire-plugin</artifactId> 
    <version>2.5</version> 
    <configuration> 
     <forkMode>always</forkMode> 
     <argLine>-Dlog4j.configuration=</argLine> 
    </configuration> 
</plugin> 

Maven उत्पादन log4j आरंभ नहीं किया जा रहा बारे में एक चेतावनी से पता चलता है, लेकिन काम करने के लिए ऐसा लगता है कि अन्य की तुलना में।

संबंधित मुद्दे