2012-06-21 13 views
8

से मेल खाना चाहिए, मैं log4j.xsd (xml schema) के साथ अपना log4j.xml कनेक्ट करना चाहता हूं। परियोजना में कोई चेतावनी या त्रुटियां नहीं हैं। लेकिन जब मैं इसे शुरू, Ihave ऐसी सांत्वना चेतावनी:log4j: WARN दस्तावेज़ रूट तत्व "log4j: कॉन्फ़िगरेशन", DOCTYPE रूट "शून्य"

log4j: चेतावनी continuable पार्सिंग त्रुटि 6 और स्तंभ 66.

log4j: चेतावनी दस्तावेज़ मूल तत्व "log4j: विन्यास", से मेल खाना चाहिए DOCTYPE जड़ "अशक्त"।

log4j: चेतावनी continuable पार्सिंग त्रुटि 6 और स्तंभ 66.

log4j: चेतावनी दस्तावेज़ अमान्य है: कोई व्याकरण पाया।

मुझे लगता है, स्कीमा स्थान में समस्या। लेकिन मुझे नहीं पता, इसे सामान्य रूप से कैसे लिखना है। आपकी सलाह के लिए आशा है।

मेरे log4j.xml:

<?xml version="1.0" encoding="UTF-8" ?> 

    <log4j:configuration xmlns:log4j="http://jakarta.apache.org/log4j/" 
    xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" 
    debug="false" 
    xsi:schemaLocation="http://www.example.org/log4j log4j.xsd "> 

<appender name="logFileAppender" class="org.apache.log4j.RollingFileAppender"> 
     <param name="File" value="E:/Codes/HorseRacing/logFile.log"/> 
     <param name="MaxFileSize" value="1MB"/> 
     <param name="MaxBackupIndex" value="5"/> 
     <param name="Encoding" value="UTF-8"/> 
     <layout class="org.apache.log4j.EnhancedPatternLayout"> 
     <param name="ConversionPattern" value="%d{ISO8601} [%-5p][%-16.16t][%40.40c] - %m%n"/> 
     </layout> 
    </appender> 

    <appender name="ConsoleAppender" class="org.apache.log4j.ConsoleAppender"> 
     <param name="Encoding" value="Cp866"/> 
     <layout class="org.apache.log4j.PatternLayout"> 
     <param name="ConversionPattern" value="%d{ISO8601} [%-5p][%-25.25l][%10.10c] - %m%n" /> 
     </layout> 
    </appender> 

    <logger name="appLogger"> 
     <level value="INFO"/> 
     <appender-ref ref="logFileAppender"/> 
     <appender-ref ref="ConsoleAppender"/> 
    </logger> 

</log4j:configuration> 

और मेरे log4j.xsd:

<?xml version="1.0" encoding="UTF-8"?> 
<xsd:schema attributeFormDefault="unqualified" 
    elementFormDefault="qualified" version="1.0" 
    xmlns:xsd="http://www.w3.org/2001/XMLSchema"> 
    <xsd:element name="configuration"> 
    <xsd:complexType> 
     <xsd:sequence> 
     <xsd:element maxOccurs="unbounded" name="appender"> 
      <xsd:complexType> 
      <xsd:sequence> 
       <xsd:element maxOccurs="unbounded" name="param"> 
       <xsd:complexType> 
        <xsd:attribute name="name" type="xsd:string" /> 
        <xsd:attribute name="value" type="xsd:string" /> 
       </xsd:complexType> 
       </xsd:element> 
       <xsd:element name="layout"> 
      <xsd:complexType> 
       <xsd:sequence> 
       <xsd:element name="param"> 
        <xsd:complexType> 
        <xsd:attribute name="name" type="xsd:string" /> 
        <xsd:attribute name="value" type="xsd:string" /> 
        </xsd:complexType> 
       </xsd:element> 
       </xsd:sequence> 
       <xsd:attribute name="class" type="xsd:string" /> 
      </xsd:complexType> 
      </xsd:element> 
     </xsd:sequence> 
     <xsd:attribute name="name" type="xsd:string" /> 
     <xsd:attribute name="class" type="xsd:string" /> 
     </xsd:complexType> 
    </xsd:element> 
    <xsd:element name="logger"> 
     <xsd:complexType> 
     <xsd:sequence> 
      <xsd:element name="level"> 
      <xsd:complexType> 
       <xsd:attribute name="value" type="xsd:string" /> 
      </xsd:complexType> 
      </xsd:element> 
      <xsd:element maxOccurs="unbounded" name="appender-ref"> 
       <xsd:complexType> 
       <xsd:attribute name="ref" type="xsd:string" /> 
       </xsd:complexType> 
      </xsd:element> 
      </xsd:sequence> 
      <xsd:attribute name="name" type="xsd:string" /> 
     </xsd:complexType> 
     </xsd:element> 
    </xsd:sequence> 
    <xsd:attribute name="debug" type="xsd:boolean" /> 
    <xsd:attribute name="schemaLocation" type="xsd:string" /> 
    </xsd:complexType> 
    </xsd:element> 
    </xsd:schema> 

    <logger name="appLogger"> 
    <level value="INFO"/> 
    <appender-ref ref="logFileAppender"/> 
    <appender-ref ref="ConsoleAppender"/> 
    </logger> 

    </log4j:configuration> 

पी.एस. मेरे अंग्रेजी के लिए खेद है ...

उत्तर

5

इस संदेश का निर्माण करने वाला जार एक डीटीडी को सत्यापित करने की अपेक्षा करता है, स्कीमा मान्य कॉन्फ़िगरेशन नहीं।

अपने क्लासपाथ की जांच करें। आप इस कॉन्फ़िगरेशन के लिए ढांचे के पुराने संस्करण का उपयोग कर रहे हैं। बहुत संभावना है कि आपके डिस्क पर एक ही नाम के साथ एक जार के कई संस्करण हैं, और ऐसे अवसर आपको समस्या के बारे में बताएंगे और बहुत पुराने पुस्तकालयों को हटाने के लिए जो आप वास्तव में उपयोग नहीं करना चाहते हैं।

+0

मैं log4j-1.2.17.jar क्या करना चाहिए उपयोग कर रहा हूँ मैं जांचता हूं या परीक्षण करता हूं? – dmgmyza

+0

Thanx बहुत कुछ! मैंने 1.2.9 डाउनलोड किया - और डीटीडी के माध्यम से सत्यापन बदल दिया। सब ठीक है। – dmgmyza

+0

तो, क्या आपने डाउनग्रेड किया? –

11

सही <xml> तत्व के बाद अपने log4j.xml config फ़ाइल में निम्न पंक्ति जोड़ें:

<!DOCTYPE log4j:configuration SYSTEM "log4j.dtd">

Complete log4j Configuration Example from their wiki:

<?xml version="1.0" encoding="UTF-8" ?> 
<!DOCTYPE log4j:configuration SYSTEM "log4j.dtd"> 

<log4j:configuration xmlns:log4j="http://jakarta.apache.org/log4j/"> 
    <appender name="console" class="org.apache.log4j.ConsoleAppender"> 
    <param name="Target" value="System.out"/> 
    <layout class="org.apache.log4j.PatternLayout"> 
     <param name="ConversionPattern" value="%-5p %c{1} - %m%n"/> 
    </layout> 
    </appender> 

    <root> 
    <priority value ="debug" /> 
    <appender-ref ref="console" /> 
    </root> 

</log4j:configuration> 
+1

क्या आप सही स्थान बता सकते हैं कि मुझे यह लाइन कहां रखना चाहिए? –

+1

डीटीडी लाने के बारे में [यह जवाब] देखें (http://stackoverflow.com/a/10852980/487494) – JavaJigs