0

在我的 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 类型的属性不能以 $ 字符开头的事实有关,但是我如何在该属性中使用属性?

提前致谢。此致

4

0 回答 0