【问题标题】:ERROR StatusLogger No log4j2 configuration file found. Using default configuration while compiling using ANT target错误 StatusLogger 找不到 log4j2 配置文件。使用 ANT 目标编译时使用默认配置
【发布时间】:2017-01-31 12:48:44
【问题描述】:

我收到错误'ERROR StatusLogger No log4j2 configuration file found。使用默认配置:仅将错误记录到控制台。在执行 ant 目标:仪器时。

我的 ANT 目标:

<target name="instrumentHibernate">
      <taskdef name="instrument" classname="org.hibernate.tool.instrument.javassist.InstrumentTask">
           <classpath>
                 <path refid="all_classpath"/>
           </classpath>              
     </taskdef>
     <instrument verbose="true">   
        //Error is thrown at this block 
         <fileset dir="target/classes" includes="**/A.class" />
         <fileset dir="target/classes" includes="**/B.class" />
         <fileset dir="target/classes" includes="**/C.class" />          
      </instrument>
</target>

我的项目配置:

蚂蚁:1.7

支柱:2.3.24

春天:4.2.3

休眠:4.2.8

我尝试了以下解决方案:

1) 将属性 -Dlog4j.configuration 更改为 -Dlog4j.configurationFile

2) 将log4j2.xml文件放到src文件夹下

3) 在构建脚本中添加 sysproperty

4) 将类路径设置为 log4j2.xml

问题:

1)如果log4j2.xml中的错误会导致这个错误还是只是因为log4j2.xml在编译时不可用?

2) 是否有任何工具可用于验证我的 log4j2.xml?

3) 是否有任何与 ANT 相关的依赖项或 ANT 升级要求?

谢谢

【问题讨论】:

    标签: java ant log4j log4j2


    【解决方案1】:

    我有一个带有 Ant 和 log4j 的项目,我的目标调用了定义的宏 macrodef 我称之为 log4j 的地方

    <java classname="YourMainClass.java or otherclass.java">
        <sysproperty key="log4j.configuration" value="log4j.properties" />
    <java/>
    

    里面。我没有 log4j2.xml

    【讨论】:

      【解决方案2】:

      1) 当 log4j 2 找不到 log4j2.xml 文件时发生此错误。我使用 jvmarg 元素来设置属性 Dlog4j.configurationFile:

      <java classname="xxx"> <jvmarg value="-Dlog4j.configurationFile=log4j_build.xml"/> </java>

      log4j2.xml文件的路径是用ANT的元素path和pathelement定义的。

      2) 不,没有任何工具或 XSD 来验证 log4j2.xml 文件。要调试您的配置文件,您可以使用属性 -Dorg.apache.logging.log4j.simplelog.StatusLogger.level=TRACE 和配置文件中的属性 status 打印 log4j 2 的内部跟踪:&lt;Configuration status="trace"&gt;

      3) 我使用的是最新版本的 ANT,但我没有任何其他依赖项。

      【讨论】:

        【解决方案3】:

        您可以尝试将文件log4j2.xml复制到用户的工作目录,即:

        文件集>
        

        您需要将文件放在srcFolder 中才能被包含。

        【讨论】:

        • 我尝试将 log4j2.xml 包含在我的目标中,但没有成功。我已更新问题以包含 ANT 目标。你能看看吗?
        猜你喜欢
        • 2018-08-27
        • 2019-08-28
        • 2018-01-02
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 2018-01-20
        • 2014-10-18
        • 2014-12-30
        相关资源
        最近更新 更多