Xml 在log4cxx配置中多次使用的值的单一定义
我有一个log4cxx.xml配置文件,它定义了多个滚动文件追加器Xml 在log4cxx配置中多次使用的值的单一定义,xml,dtd,log4cxx,Xml,Dtd,Log4cxx,我有一个log4cxx.xml配置文件,它定义了多个滚动文件追加器 <?xml version="1.0" encoding="UTF-8" ?> <log4j:configuration xmlns:log4j="http://jakarta.apache.org/log4j/" debug="false"> <appender name="A" class="org.apache.log4j.rolling.RollingFileAppender">
<?xml version="1.0" encoding="UTF-8" ?>
<log4j:configuration xmlns:log4j="http://jakarta.apache.org/log4j/" debug="false">
<appender name="A" class="org.apache.log4j.rolling.RollingFileAppender">
<param name="file" value="file1.log" />
<param name="MaxFileSize" value="12MB" />
...
</appender>
...
<appender name="G" class="org.apache.log4j.rolling.RollingFileAppender">
<param name="file" value="file7.log" />
<param name="MaxFileSize" value="12MB" />
...
</appender>
<!-- Loggers referencing A, B, ..., G -->
...
...
...
我想在文件中有一个地方,在那里我定义了最大文件大小。我知道我可以用${MAX_FILE_SIZE}替换12MB并从环境中获取值,但我不想设置环境变量
看来下面的办法应该行得通
<?xml version="1.0" encoding="UTF-8" ?>
<!DOCTYPE log4j:configuration [
<!ENTITY maxFileSize "12MB">
]>
<log4j:configuration xmlns:log4j="http://jakarta.apache.org/log4j/" debug="false">
<appender name="A" class="org.apache.log4j.rolling.RollingFileAppender">
<param name="file" value="file1.log" />
<param name="MaxFileSize" value="&maxFileSize" />
...
</appender>
...
...
...
但是,如果log4cxx:Error解析文件[log4cxx.xml],内部errorXML解析器错误代码:格式不正确(无效令牌)(4)
,则此操作失败
我猜测出了什么问题,要么是我把DOCTYPE语句搞错了,要么是log4cxx没有完整的XML解析器,不需要DOCTYPE。我对DTD几乎没有经验,所以这两个答案对我来说都是合理的
是否有一种方法可以修复DOCTYPE以实现此功能,或者有一种完全不同的方法可以获得我想要的结果,即在文件中的一个位置指定最大文件大小?看起来您刚刚错过了实体引用中的分号 应该是这样的:
<param name="MaxFileSize" value="&maxFileSize;" />
doctype声明看起来不错。这就是问题所在。谢谢