Java 即使将记录器定义添加到Log4j配置文件中,也无法使用Log4j获取跟踪输出

Java 即使将记录器定义添加到Log4j配置文件中,也无法使用Log4j获取跟踪输出,java,xml,eclipse,maven,logging,Java,Xml,Eclipse,Maven,Logging,我无法在使用maven项目的Eclipse控制台中看到“跟踪”输出。有人能帮我吗Log4j配置文件:Log4j.xml <?xml version="1.0" encoding="UTF-8"?> <configuration status="WARN"> <appenders> <Console name="Console" target="SYSTEM_OUT"> <PatternLayout p


我无法在使用maven项目的Eclipse控制台中看到“跟踪”输出。有人能帮我吗

Log4j配置文件:Log4j.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="p1.App" level="trace">
 <appender-ref ref="Console"/>
 </logger>
 <root level="error">  
  <appender-ref ref="Console"/> 
 </root>
</loggers> 
</configuration>
package p1;    
import org.apache.logging.log4j.LogManager;
import org.apache.logging.log4j.Logger;
public class App {
    static Logger logger = LogManager.getLogger(App.class.getName());
public static void main( String[] args ) {
    logger.error("Error");
    logger.trace("Trace");   
}
}
在运行之前,我已经为log4j.xml正确设置了类路径。请建议我,我还需要配置什么


提前谢谢

假设您使用的是log4j 1.2(而不是log4j2),那么指定级别是使用logger元素内部的元素而不是logger元素上的属性来完成的

<logger name="p1.App">
   <level name="trace" />
   <appender-ref ref="Console"/>
 </logger>


还要确保log4j.xml位于src/main/resources目录中,当它位于src/main/java目录中时,它将不工作(它将被过滤,因为它不是java文件)

有人能告诉我需要在我的log4j.xml文件中添加/编辑什么吗?嗨,Deinum,我正在使用最新版本的log4j 2.0(apache-log4j-2.0-beta8-bin.zip from)。我通过在“pom.xml”中添加依赖项来包含所需的log4j 2.x jar文件。正如你所说的,我已经将log4j.xml移到了“src/main/resources”目录,并设置类路径,但没有任何进展…(有任何解决方案吗?我需要在我的“pom.xml”中添加任何内容吗?您是如何将它们添加到pom的?maven存储库中没有2.0 Log4J JAR,因此如果您自己没有将它们添加到本地回购协议中,maven将不会为Log4J V2工作。正如在他们的网站中提到的,我按照链接()中给出的步骤将依赖项添加到“pom.xml”中如果log4j.xml在src/main/resource中,并且被添加到类路径中(我建议使用m2eclipse插件为您管理该类路径,为您节省一些麻烦,或者
mvn eclipse:eclipse
为您节省手动编辑类路径的时间)。此外,根据文件名,文件名必须为log4j2.xml,而不是log4j.xml