2
我有一個log4cxx.xml配置文件,它定義了多個滾動文件appender。在log4cxx配置中多次使用的值的單一定義
<?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 parsing file [log4cxx.xml], Internal errorXML parser error code: not well-formed (invalid token) (4)
。
我來了什麼錯誤的猜測是,無論是我得到的DOCTYPE聲明錯誤,或log4cxx沒有一個完整的XML解析器和不希望的DOCTYPE。我幾乎沒有DTD的經驗,所以這兩個答案對我來說都是合理的。
是有辦法解決的DOCTYPE,使這項工作,或完全不同的方法,將得到我所需要的文件在一個位置指定的最大文件大小的結果呢?
這就是問題所在。謝謝! – 2014-09-11 14:32:16