You are viewing a plain text version of this content. The canonical link for it is here.
Posted to log4j-dev@logging.apache.org by "Veit Guna (JIRA)" <ji...@apache.org> on 2016/01/04 23:26:39 UTC

[jira] [Created] (LOG4J2-1243) Faulty placeholder substitution in config xml

Veit Guna created LOG4J2-1243:
---------------------------------

             Summary: Faulty placeholder substitution in config xml
                 Key: LOG4J2-1243
                 URL: https://issues.apache.org/jira/browse/LOG4J2-1243
             Project: Log4j 2
          Issue Type: Bug
          Components: Lookups
    Affects Versions: 2.5
         Environment: JDK 8
            Reporter: Veit Guna


I'm using log4j 2.5 in a REST service.

There I would like to use the placeholder substitution to allow configuration of the log location.

I tried this:

{code:xml}
<Properties>
<!-- sets the path for log4j logs:
1. check whether java system property myapp.logs is set. If not:
2. check whether the OS environment variable MYAPP_LOGS is set. If not:
3. use logs dir in the current directory
-->
<Property name="logsPath">${sys:mypapp.logs:-${env:MYAPP_LOGS:-logs}}</Property>
</Properties>
{code}

This seems to work quite well with the exception, if myapp.logs is set, the path ends with "}". So if I set the system property "-Dmyapp.logs=foobar" it creates the directory "foobar}" and puts the logs into that. For the ENV substitution it works. It also works when NO placeholder nesting is performed. So I guess the problem has something todo with that.

Thanks
Veit



--
This message was sent by Atlassian JIRA
(v6.3.4#6332)

---------------------------------------------------------------------
To unsubscribe, e-mail: log4j-dev-unsubscribe@logging.apache.org
For additional commands, e-mail: log4j-dev-help@logging.apache.org