在我的 Maven 项目中,我使用 log4J 框架,在开发环境中使用时,我使用附加程序“stdout”,当我在 PRD 上部署时,我使用附加程序“A1”。为了不重复文件,我有以下配置: log4j.xml
<appender name="stdout" class="org.apache.log4j.ConsoleAppender">
<layout class="org.apache.log4j.TTCCLayout"/>
</appender>
<appender name="A1" class="org.apache.log4j.RollingFileAppender">
<param name="File" value="${Log4j.OUTPUT_DIR}/APP.log"/>
<param name="MaxFileSize" value="1024KB"/>
<param name="MaxBackupIndex" value="7"/>
<layout class="org.apache.log4j.PatternLayout">
<param name="ConversionPattern" value="%d{yyyy/MM/dd HH:mm:ss:SSS} %-5p [%t] %c{1} - %m%n"/>
</layout>
</appender>
<root>
<level value="${log4j.level}"/>
<appender-ref ref="${log4j.appender}"/>
</root>
在 pox.xml 文件中进行以下配置:
<properties>
<log4j.appender>stdout</log4j.appender>
<log4j.level>DEBUG</log4j.level>
</properties>
<profile>
<id>QA</id>
<properties>
<log4j.appender>A1</log4j.appender>
<log4j.level>ERROR</log4j.level>
....
但在我的 Eclipse 中,在 log4j.xml 文件中指示以下错误
启用命名空间时,IDREF 类型的属性值“${log4j.appender}”必须是 NCName。
我读到这与 IDREF 类型的属性不能以 $ 字符开头的事实有关,但是我如何在该属性中使用属性?
提前致谢。此致