java - “log4j:configuration” 必须匹配 “(renderer….loggerFactory)?)”

标签 java tomcat maven log4j

在将我的 war 文件部署到 tomcat 时出现错误:

log4j:WARN The content of element type "log4j:configuration" must match "(renderer*,throwableRenderer?,appender*,plugin*,(category|logger)*,root?,(categoryFactory|loggerFactory)?)"

我搜索了一下,发现我的 log4j.xml 的顺序可能是错误的,但它应该是正确的。

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

有什么建议吗?

最佳答案

根据错误消息,DTD 期望所有 category 元素都在 root 元素之前。你把它们弄错了。

关于java - “log4j:configuration” 必须匹配 “(renderer….loggerFactory)?)”,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/12321943/

相关文章:

java - 不止一种用 @Before 注解的方法

java - 从 OOP 设计的角度来看,通过对象传递参数的最有效实现是什么?

java - 如何在 Tomcat 服务器上部署 reactJS 应用程序

java - 从 servlet 调用异步方法

android - 适用于Android OS的依赖项下载器

java - AlarmManager 与日历对象 Android java

java - 有没有办法强制 JAVA 在 Elements 中打印空的 CDATA?

JavaEE/Tomcat 9.0.0/IntellijIdea 2016.2 : java. sql.SQLException:无法为连接 URL '' 创建类 'null' 的 JDBC 驱动程序

Maven war 覆盖与 Alfresco AMP

tomcat - 如何使 Tomcat 可以使用 Maven 依赖项