2013-09-06 5 views
14

लॉग आउटपुट के लिए मैं स्प्रिंग लॉग को कैसे अक्षम कर सकता हूं जिसे मैं आसानी से पढ़ सकता हूं या कोई और पढ़ सकता है। how to disable spring bean loading log पर एक समान प्रश्न का उत्तर substringlog4j.propertiesfile में सभी पंक्तियों पर टिप्पणी करने का सुझाव दिया गया है। मेरे मामले में ऐसी कोई लाइन नहीं है।पठनीय लॉग को अक्षम करने के लिए स्प्रिंग लॉग को अक्षम करना

log4j.logger.com.foo=WARN 

अब आप ही देख सकते हैं कंसोल में चेतावनी, त्रुटि और घातक लॉग्स:

यहाँ log4j.properties

# Define the root logger with appender file 
log4j.rootLogger = DEBUG, stdout 

# Define the file appender 
log4j.appender.stdout=org.apache.log4j.ConsoleAppender 
# Set the name of the logs destination 
log4j.appender.stdout.target=System.out 

# Set the immediate flush to true (default) 
log4j.appender.stdout.ImmediateFlush=true 

# Set the threshold to debug mode 
log4j.appender.stdout.Threshold=debug 

# Set the append to false, overwrite 
log4j.appender.stdout.Append=false 

# Define the layout for appender 
log4j.appender.stdout.layout=org.apache.log4j.PatternLayout 
log4j.appender.stdout.layout.conversionPattern=%d{yyyy-MM-dd}:%m%n 

उत्तर

29

आपकी डिफ़ॉल्ट लॉगिंग, जो कुछ भी स्पष्ट रूप से निर्दिष्ट नहीं है, DEBUG है। तो उस स्तर पर सब कुछ लॉग है (आपकी कॉन्फ़िगरेशन से निर्णय लेना), मूल रूप से आप अपने लॉग बाढ़ कर रहे हैं। आपको org.springframework के लिए लॉगर्स को नहीं हटाया जाना चाहिए, आपको उन्हें जोड़ना चाहिए और उनके लिए एक और स्तर सेट करना चाहिए।

log4j.logger.org.springframework=INFO 

या जो भी लॉग स्तर स्तर आपको पसंद है।

1.How to add maven dependency 
2.Where to put log4j configuration file 

ठीक है, सवाल करने के लिए वापसी:

+0

यह सही है। लेकिन ओपी की जरूरतों के आधार पर यह वास्तव में डिफ़ॉल्ट स्तर को INFO या उच्चतर पर सेट करने के लिए और अधिक उपयोगी हो सकता है और उदाहरण के लिए, अपने स्वयं के पैकेज के लिए डीबग का उपयोग करना। –

3

आप जैसा कि निम्न उदाहरण में देखा जा सकता आवश्यक पैकेज का नाम निर्दिष्ट कर सकते हैं ।

5

ऐसा करने से पहले आप में से कुछ ज्ञान प्राप्त होना चाहिए। शीर्ष जवाब वसंत 4.x के लिए काम नहीं कर रहा है, अगर आप spring4.x 3 चरणों का पालन करें उपयोग कर रहे हैं:

  1. spring-core

    <dependency> 
        <groupId>org.springframework</groupId> 
        <artifactId>spring-core</artifactId> 
        <version>4.3.4.RELEASE</version> 
        <exclusions> 
         <exclusion> 
          <groupId>commons-logging</groupId> 
          <artifactId>commons-logging</artifactId> 
         </exclusion> 
        </exclusions> 
    </dependency> 
    

    से common-logging को दूर इस कदम के बिना, कोई फर्क नहीं पड़ता कि आपने log4j कॉन्फ़िगरेशन फ़ाइल में क्या रखा है, काम नहीं कर रहा है, क्योंकि वसंत common-logging मेरे लड़के का उपयोग कर रहा है!
    पीएस: वसंत मॉड्यूल के बहुत सारे के भीतर, spring-core एकमात्र मॉड्यूल है जो स्पष्ट रूप से commons-logging पर निर्भर करता है।

  2. SLF4J और log4j जोड़े

    <dependency> 
        <groupId>org.slf4j</groupId> 
        <artifactId>jcl-over-slf4j</artifactId> 
        <version>1.5.8</version> 
    </dependency> 
    <dependency> 
        <groupId>org.slf4j</groupId> 
        <artifactId>slf4j-api</artifactId> 
        <version>1.5.8</version> 
    </dependency> 
    <dependency> 
        <groupId>org.slf4j</groupId> 
        <artifactId>slf4j-log4j12</artifactId> 
        <version>1.5.8</version> 
    </dependency> 
    <dependency> 
        <groupId>log4j</groupId> 
        <artifactId>log4j</artifactId> 
        <version>1.2.14</version> 
    </dependency> 
    
  3. कॉन्फ़िगर log4j.properties (तुम भी xml फ़ाइल का उपयोग कर सकते)

    log4j.rootCategory = जानकारी, stdout

    log4j.appender.stdout = org.apache.log4j.C onsoleAppender log4j.appender.stdout.layout = org.apache.log4j.PatternLayout log4j.appender.stdout.layout.ConversionPattern =% d {ABSOLUTE}% 5p% t % c {2}:% L -% m% एन

    log4j.category.org.springframework.beans।कारखाने = जानकारी

अब, कष्टप्रद वसंत डीबग लॉग away.Enjoy कोडिंग जा रहा है!

जवाब मूल क्लिक here

0

मैं भी इस एक ही मुद्दा का सामना करना पड़ रहा था के लिए, spring.io दस्तावेज़ से है। Log4j कॉन्फ़िगरेशन के बाद भी स्प्रिंगफ्रेमवर्क लॉगिंग को हटाया नहीं जा रहा था। तब मैंने पाया कि इसका लॉगिंग कॉमन्स-लॉगिंग पर निर्भर करता है।

आपको वेब ऐप की pom.xml फ़ाइल में निर्भरता से commons-logging अक्षम करना होगा।

pom.xml से commons-logging को हटाने के बाद भी ग्रहण या एसटीएस आईडीई में उपलब्ध निर्भरता पदानुक्रम की जांच करें। इससे यह जानने में मदद मिलेगी कि किसी अन्य निर्भरता प्रबंधन के कारण किसी भी तरह इसे जोड़ा जा रहा है, जिसे हम नहीं जानते हैं।

निर्भरता को हटाने के बाद बस अपने log4j कॉन्फ़िगरेशन में log4j.logger.org.springframework=ERROR जोड़ें। ये सहायता करेगा।

2

सभी उत्तरों ने log4j.properties में कॉन्फ़िगरेशन के साथ उदाहरण दिए, जो पूछा गया था। मुझे एक ही समस्या थी लेकिन मैं log4j2.xml में कॉन्फ़िगरेशन का उपयोग कर रहा था और यहां जवाब मुझे समाधान के लिए ले जाता है।

<?xml version="1.0" encoding="UTF-8"?> 
<Configuration status="WARN"> 
    <Appenders> 
     <Console name="Console" target="SYSTEM_OUT"> 
      <PatternLayout pattern="%d{HH:mm:ss.SSS} [%t] %-5level %logger{36} - %msg%n"/> 
     </Console> 
    </Appenders> 
    <Loggers> 
     <Logger name="org.springframework" level="WARN"/> 
     <Root level="info"> 
      <AppenderRef ref="Console"/> 
     </Root> 
    </Loggers> 
</Configuration> 

मैं: मैं नाम org.springframework और स्तर के साथ एक नोड लॉगर चेतावनी के रूप में निम्न नमूना में दिखाया कहा:

मामले में किसी ने मुझे के रूप में ही नाव पर है, यहाँ मैं क्या किया है मैं स्प्रिंग बूट का उपयोग कर रहा हूं और जो बहिष्करण मैं कर रहा हूं वह निम्न स्निपेट में दिखाए गए लॉगबैक-क्लासिक है:

<dependency> 
     <groupId>org.springframework.boot</groupId> 
     <artifactId>spring-boot-starter</artifactId> 
     <exclusions> 
      <exclusion> 
       <groupId>ch.qos.logback</groupId> 
       <artifactId>logback-classic</artifactId> 
      </exclusion> 
     </exclusions> 
    </dependency> 
संबंधित मुद्दे