On Thu, 14 Feb 2008 17:49:57 +0100
"Maarten Bosteels" <[EMAIL PROTECTED]> wrote:
On Thu, Feb 14, 2008 at 3:13 PM, James A. N. Stauffer <
[EMAIL PROTECTED]> wrote:
In an XML config, system properties can be used like ${catalina.base}.
Hello James,
Great to hear that system properties are resolved, but what about
passing in a plain java.util.Properties file so that I can supply parameters
at runtime.
During one-time manual config of the logger repository? Not usually necessary
as the parameters can only be set once anyway. They might as well be system
properties, though being able to pass in properties to the
PropertyConfigurator might be useful in some cases. However, I'm not sure it
rises to the level of a must-have feature?
Using system properties woud not work for me because I want different a
value for this placeholder
per webapp (the log4j config file is shared though), and on tomcat system
property values are shared between webapps.
(well, it would probably work as long as these webapps are not
simultaneously configuring log4j ...)
This is quite simple. Just name your system properties per-webapp, using
unique, but predictable, names. For instance, if you have a different
location for logs to be stored, per-webapp, you can name it like...
${mywebapp.log.dir}
${myotherwebapp.log.dir}
etc....
BTW, you can avoid multiple apps configuring one logger repository by using a
repository selector....or by taking advantage of classloading behavior
(child-first under Tomcat-Standalone) and put log4j.jar in WEB-INF/lib and
log4j.xml in WEB-INF/classes.
I've seen a package-scoped props field in the DomConfigurator but I could
not find where it's being assigned.
Not sure about this? Haven't loooked at it at all.
This is my current work-around:
package org.apache.log4j.xml;
public class PropertyDomConfigurator {
/**
* configure log4j from an xml file, resolving ant style placeholders from
the given Properties object
* @param url URL to the xml config
* @param properties used for resolving placeholders
*/
public static void configure(final URL url, Properties properties) {
DOMConfigurator configurator = new DOMConfigurator();
configurator.props = new Properties(properties);
configurator.doConfigure(url, LogManager.getLoggerRepository());
}
}
What do you think about adding this method to DOMConfigurator ?
Maarten
On Wed, Feb 13, 2008 at 5:23 PM, osubb <[EMAIL PROTECTED]> wrote:
>
> I am pretty new to log4j and have a question that should be easy. I am
using
> log4j in a web (java servlets) environment.
>
> 1) How do I pass in variables? I have an app that uses the
JDBCAppender
> and would like to pass in the connection values. Is there an easy way
to do
> this? These values could be different for each client that access the
> Servlet(s). Is there a pattern for this type of scenario?
>
> At this point, I have to hardcode the URL, user, and password values in
the
> log4j.xml file. I tried using MDC, but this seems to work in the
> "ConversionPattern" param for log files and the "sql" param name for
the
> JDBCAppender. It does not work for the "URL", "user", and "password"
param
> values (does not change to MDC value).
>
> Any help would be appreciated,
> osubb
> --
> View this message in context:
http://www.nabble.com/dynamic-variables-parameters-tp15470530p15470530.html
> Sent from the Log4j - Users mailing list archive at Nabble.com.
>
>
> ---------------------------------------------------------------------
> To unsubscribe, e-mail: [EMAIL PROTECTED]
> For additional commands, e-mail: [EMAIL PROTECTED]
>
>
--
James A. N. Stauffer http://www.geocities.com/stauffer_james/
Are you good? Take the test at http://www.livingwaters.com/good/
---------------------------------------------------------------------
To unsubscribe, e-mail: [EMAIL PROTECTED]
For additional commands, e-mail: [EMAIL PROTECTED]
---------------------------------------------------------------------
To unsubscribe, e-mail: [EMAIL PROTECTED]
For additional commands, e-mail: [EMAIL PROTECTED]