我收到错误'错误状态记录器未找到log4j2配置文件。使用默认配置:在执行 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) 在构建脚本中添加系统属性
4) 将类路径设置为 log4j2.xml
问题:
1)如果log4j2中的错误.xml会导致此错误还是只是因为log4j2.xml在编译时不可用?
2) 是否有任何工具可用于验证我的 log4j2.xml?
3) 是否有任何与 ANT 相关的依赖关系或 ANT 升级要求?
谢谢
我有一个包含 Ant 和 log4j 的项目,我的目标调用了一个定义的 macri macrodef
我称之为log4j
<java classname="YourMainClass.java or otherclass.java">
<sysproperty key="log4j.configuration" value="log4j.properties" />
<java/>
里面。我没有 log4j2.xml
1) 当 log4j 2 找不到 log4j2.xml 文件时,会发生此错误。我使用 jvmarg 元素来设置属性 Dlog4j.configurationFile:
<java classname="xxx">
<jvmarg value="-Dlog4j.configurationFile=log4j_build.xml"/>
</java>
log4j2.xml 文件的路径是用 ANT 的元素路径和路径元素定义的。
2) 不,没有任何工具或 XSD 来验证 log4j2.xml 文件。要调试配置文件,您可以使用属性 -Dorg.apache.logging.log4j.simplelog.StatusLogger.level=TRACE 以及配置文件中的属性状态打印 log4j 2 的内部跟踪:<Configuration status="trace">
。
3)我使用最新版本的ANT,但我没有任何其他依赖项。
您可以尝试将文件log4j2.xml
复制到用户的工作目录,即:
您需要将文件包含在srcFolder
中才能包含在内。