“log4j:configuration” must match “(renderer….loggerFactory)?)”
21,452
Solution 1
According to the error message, the DTD expects all category
elements to be ahead of the root
element. You have them the wrong way round.
Solution 2
Follow this order:
<renderer></renderer>
<appender></appender>
<plugin></plugin>
<logger></logger>
<category></category>
<root></root>
<loggerfactory></loggerfactory>
<categoryfactory></categoryfactory>
Comments
-
Jaanus over 4 years
getting error, when deploying my war file to tomcat:
log4j:WARN The content of element type "log4j:configuration" must match "(renderer*,throwableRenderer?,appender*,plugin*,(category|logger)*,root?,(categoryFactory|loggerFactory)?)"
I googled around and found out that ordering of my log4j.xml could be wrong, but it should be correct.
<?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 %d %c %x - %m%n"/> </layout> </appender> <root> <priority value ="error" /> <appender-ref ref="console" /> </root> <category name="org.springframework" additivity="false"> <priority value="info" /> <appender-ref ref="console" /> </category> </log4j:configuration>
Any suggestions?