2012-06-21 22 views
8

Tôi muốn kết nối log4j.xml với log4j.xsd (lược đồ xml). Dự án không có bất kỳ cảnh báo hoặc lỗi nào. Nhưng khi tôi bắt đầu nó, Ihave console như cảnh báo:log4j: WARN Phần tử gốc tài liệu "log4j: configuration", phải khớp với DOCTYPE root "null"

log4j: WARN Liên Tiếp phân tích lỗi 6 và cột 66.

log4j: WARN Document yếu tố gốc "log4j: Cấu hình", phải phù hợp với DOCTYPE root "null".

log4j: WARN Liên Tiếp lỗi phân tích cú pháp 6 và cột 66.

log4j: WARN tài liệu không hợp lệ: không có ngữ pháp được tìm thấy.

Tôi nghĩ, sự cố trong lược đồ Vị trí. Nhưng tôi không biết, làm thế nào để viết nó bình thường. Hy vọng cho lời khuyên của bạn.

log4j.xml của tôi:

<?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> 

Và log4j.xsd tôi:

<?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> 

T.B. Xin lỗi cho tiếng anh của tôi ...

Trả lời

5

Bình đang tạo thông báo này dự kiến ​​sẽ thấy một cấu hình DTD được xác nhận hợp lệ, không phải lược đồ.

Kiểm tra đường dẫn lớp của bạn. Bạn đang sử dụng phiên bản cũ của khung công tác cho cấu hình này. Rất có thể bạn có nhiều phiên bản của một cái lọ có cùng tên trên đĩa của bạn, và những sự cố như vậy sẽ chỉ cho bạn vấn đề và loại bỏ các thư viện rất cũ mà bạn không thực sự muốn sử dụng.

+0

Tôi đang sử dụng log4j-1.2.17.jar gì nên Tôi kiểm tra hay kiểm tra? – dmgmyza

+0

Thanx rất nhiều! Tôi đã tải xuống 1.2.9 - và thay đổi xác thực thông qua DTD. mọi thứ ok. – dmgmyza

+0

Vì vậy, bạn đã hạ cấp? –

11

Thêm dòng sau vào tập tin cấu hình log4j.xml của bạn ngay sau khi các yếu tố <xml>:

<!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

bạn có thể cho biết vị trí chính xác nơi tôi nên đặt dòng này? –

+1

Xem [câu trả lời này] (http://stackoverflow.com/a/10852980/487494) cũng về tìm nạp DTD – JavaJigs