You're right, I did miss something.  I didn't see "log4j.logdir" being set within the file in the original example.  Sorry about that.  Your original answer appears to be right on the money.

Jake


On Mon, 21 Feb 2011 22:54:31 -0600
 Curt Arnold <carn...@apache.org> wrote:
I read the question as "how do I define parameters once" in an XML configuration file and the use of system properties was just a convenient way of doing that in property file configurations.  The property file example included setting log4j.logdir in the file and I'm not aware of any capability in XML configuration files to set system properties.  If the property was already set externally, then you could use the same type of expressions as in the example.



On Feb 21, 2011, at 8:05 PM, Jacob Kjome wrote:


Curt,

Maybe I'm missing something, but how does using XML entity refs do anything for referencing Java system properties?  The simple answer is that Log4j XML config
files support exactly the same syntax as properties files, e.g.,....

        <param name="File" value="${log4j.logdir}/MyAppender1.log"/>

I don't recall whether/where it's specifically documented or not, but it works.


Jake

On 2/20/2011 10:30 PM, Curt Arnold wrote:
XML entity references can be used for that purpose and are defined in the XML Recommendation (http://www.w3.org/TR/xml/#sec-references).

<!DOCTYPE log4j:configuration
[
<!ENTITY logdir "c:/data/logfiles">
]>
<log4j:configuration>
...
<param name="file" value="&logdir;"/>
...
</log4j:configuration>

On Feb 20, 2011, at 6:35 AM, Thomas Wiedmann wrote:

Hello,

usually in flat plain text log4j.config files global system properties can be defined, which may be referenced in the configuration of different appenders, e. g.

log4j.logdir=C:/Data/logfiles
...
log4j.appender.MyAppender1.File=${log4j.logdir}/MyAppender1.log
...
log4j.appender.MyAppender2.File=${log4j.logdir}/MyAppender2.log

I found this is a very convenient way to define (and to administer) such parameters only once globally for the entire log configuration and to use it on several references as here in the appenders configuration.

How can such global system properties be defined in xml-based configuration files (log4j.xml)?
Where is it documented? I'd found no hint about it.

Thomas Wiedmann

---------------------------------------------------------------------
To unsubscribe, e-mail: log4j-user-unsubscr...@logging.apache.org
For additional commands, e-mail: log4j-user-h...@logging.apache.org



---------------------------------------------------------------------
To unsubscribe, e-mail: log4j-user-unsubscr...@logging.apache.org
For additional commands, e-mail: log4j-user-h...@logging.apache.org





---------------------------------------------------------------------
To unsubscribe, e-mail: log4j-user-unsubscr...@logging.apache.org
For additional commands, e-mail: log4j-user-h...@logging.apache.org



---------------------------------------------------------------------
To unsubscribe, e-mail: log4j-user-unsubscr...@logging.apache.org
For additional commands, e-mail: log4j-user-h...@logging.apache.org




---------------------------------------------------------------------
To unsubscribe, e-mail: log4j-user-unsubscr...@logging.apache.org
For additional commands, e-mail: log4j-user-h...@logging.apache.org

Reply via email to