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 Ceki Gülcü <ce...@qos.ch> on 2005/01/20 15:51:25 UTC
Endre's requirements WAS: [POLL] Splitting log4j.jar by
dependency
Endre,
Thanks to a recent contribution by Yoav Shapira, log4j can pick up any
env-entry value specified in web.xml
and perform variable substitution.
In web.xml
==========
<env-entry>
<env-entry-name>BASE</env-entry-name>
<env-entry-value>/some/path/</env-entry-value>
<env-entry-type>java.lang.String</env-entry-type>
</env-entry>
In your config file
===================
<configuration>
<jndiSubstitutionProperty name="BASE"/>
<appender name="A" class="org.apache.log4j.FileAppender>
<param name="File" value="${BASE}/log.txt"/>
...
</appender>
..
</configuration>
If you are using log4j 1.3-alpha5, the directive is
<jndiSubstitutionProperty jndiName="BASE"/>
In CVS head, this was changed to:
<jndiSubstitutionProperty name="BASE"/>
I think the above provides an answer to your requirements quoted below.
At 03:09 PM 1/17/2005, Endre Stølsvik wrote:
>A feature that I'd -really- appreciate from the servlet-spec, is some kind
>of "log-dir" variable, that log4j could use as root for its configuration.
> In one of our apps, I've made a special variable that is set by the app
>to the mandatory servlet container provided "temp dir", unless you've set
>it yourself: $<productname>.log.dir. Using this, you can now configure all
>your file appenders relatively. If you don't provide the variable using -D
>switches (or whatever), you get the logfiles in the temp dir, while if you
>do set it, you'll get them where you want. This is nice - the log files do
>have somewhere to go in any case.
> (Another feature I'd love, is -extremly- simple: a way to know the
>context name (the "specific subset of the server's URL namespace") when
>the application is starting up, typically from the ServletContext. Now you
>only get it when a request actually comes in. This in particular related
>to the logging, logfile-location and config-location.
> ServletContext javadoc: There is one context per "web application" per
>Java Virtual Machine. (A "web application" is a collection of servlets and
>content installed under a specific subset of the server's URL namespace
>such as /catalog and possibly installed via a .war file.) )
>
>Endre
--
Ceki Gülcü
The complete log4j manual: http://www.qos.ch/log4j/
---------------------------------------------------------------------
To unsubscribe, e-mail: log4j-dev-unsubscribe@logging.apache.org
For additional commands, e-mail: log4j-dev-help@logging.apache.org