Warning: file_get_contents(/data/phpspider/zhask/data//catemap/6/ant/2.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Log4j2输出到文件成功,但没有使用Ant到控制台_Ant_Log4j2 - Fatal编程技术网

Log4j2输出到文件成功,但没有使用Ant到控制台

Log4j2输出到文件成功,但没有使用Ant到控制台,ant,log4j2,Ant,Log4j2,运行Ant时,Log4j2输出正确地转到文件Mylog.log,但控制台上没有显示任何内容。build.xml或log4j2.xml中缺少什么? 版本:log4j22.0,Ant 4.11 但是当使用Eclipse的RunAs Junit时,会成功地向控制台和文件日志显示Log4j2输出 In the Log4j2.xml, both Appenders to Console and File have been created. <?xml version="1.0" encoding

运行Ant时,Log4j2输出正确地转到文件Mylog.log,但控制台上没有显示任何内容。build.xml或log4j2.xml中缺少什么? 版本:log4j22.0,Ant 4.11 但是当使用Eclipse的RunAs Junit时,会成功地向控制台和文件日志显示Log4j2输出

In the Log4j2.xml, both Appenders to Console and File have been created.

<?xml version="1.0" encoding="UTF-8"?>
<Configuration status="All">
      <Appenders>
          <Console name="STDOUT" target="SYSTEM_OUT" >
              <PatternLayout pattern="%d %-5p [%t] %C{2} (%F:%L) - %m%n"/>
          </Console>
          <File name="FileLogger" fileName="MyLog.log" append="false">
              <PatternLayout pattern="%d %t %-5p %c{2} - %m%n"/>
          </File> 
      </Appenders>
      <Loggers>
          <Logger name="com.site" level="All" />
          <Root >
              <AppenderRef ref="STDOUT" level="All"/>
              <AppenderRef ref="FileLogger" level="All"/> 
          </Root>
      </Loggers>
</Configuration>
在Log4j2.xml中,已创建控制台和文件的附加器。
在build.xml中,我将log4j2.xml的路径包含在“junit”目标的类路径中



在测试类中,包含getLogger。
私有静态最终记录器log4j=LogManager.getLogger(“com.site”)

在您的配置中,name=“com.site”的记录器没有appender-ref。因此记录器不执行任何操作,可以删除。您的根记录器将处理所有事件,这样就可以了

我怀疑使用Ant运行JUnit测试与在Eclipse中运行JUnit测试之间的区别在于类路径问题。尝试在
中指定完整的绝对路径,看看这是否有什么不同

还可以使用系统属性指定配置文件的位置:

<target name="junit">
    <classpath>
        <path refid="log4j2_config"/>