On Thu, Feb 14, 2008 at 10:02 PM, Jacob Kjome <[EMAIL PROTECTED]> wrote:

> 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?


It's a feature of the PropertyConfigurator that is missing from the
DomConfigurator
and adding it shouldn't harm anyone.

> 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....


I think we have had this discussion before. And you don't seem to understand
my use-case.
I want to use ONE log4j config file (let's say /etc/log4j.xml) for all my
webapps, but each webapp should
use it's own log-file => I have ONE placeholder ${fileName} in
/etc/log4j.xml
which should be resolved at runtime based on the servlet context path of the
webapp.
It's working perfectly fine with the PropertyConfigurartor.
When a new webapp is added I don't have to change anything to the log4j
config file.

But when I want to use the DomConfigurator (because AFAICS the
RollingFileAppender from extras cannot
be configired via the PropertyConfigurator, right ?) I have to use my
work-around : setting the package scoped
props field.

regards
Maarten

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]
>
>

Reply via email to