Thanks for the very detailed answer.

I am already using configureAndWatch() so I have that part kind of taken
care of.

If I remove the

<!DOCTYPE log4j:configuration SYSTEM
"file:///symbol/mobilecommerce/analysis/conf/log4j.dtd">

line I get

log4j:ERROR Parsing error on line 3 and column 69
log4j:ERROR Document root element "log4j:configuration", must match DOCTYPE
root
 "null".
log4j:ERROR Parsing error on line 3 and column 69
log4j:ERROR Document is invalid: no grammar found.

The context initializer and such look very interesting... when will they be
in a stable build?

I also got rid of all the common logger stuff and used just log4j and it
worked like a charm.  Why is that?

Thanks!
----- Original Message -----
From: "Jacob Kjome" <[EMAIL PROTECTED]>
To: "Tomcat Users List" <[EMAIL PROTECTED]>
Sent: Thursday, February 13, 2003 2:39 PM
Subject: Re[2]: Log4J and tomcat


> Hello Sloan,
>
> You can remove the log4j.dtd.  Note that in the latest 1.2 CVS, this is
> fixed.  However, there has been talk that in the 1.3 version of log4j,
> the dtd might be removed for the same reason that it isn't used in
> Tomcat's server.xml; because the markup is too rich and dynamic to be
> described in a dtd or schema.
>
> Also, if you use commons-logging, you should put log4j.jar in
> common/lib.  It will find it there.  However, I would forgo
> commons-logging altogether and just use Log4j.  BTW, how do you expect
> to change the logging config without redeployment when log4j is
> outside the webapp's WEB-INF/lib without shutting down Tomcat?  I'd
> say that is worse than redeployment.
>
> There are a couple solutions here.  Use Tomcat's install/uninstall
> features so that you can start/stop the app in a snap, thus, allowing
> you to change debug levels.  Also, look at configureAndWatch() which
> will re-read your properties or xml file at a given interval without
> shutting down your app or the server.  However, you can only add
> loggers, not take them away.  There will be a better solution for this
> in 1.3 with the WatchDog classes.
>
> Also, you can use a custom repository selector if you want your app to
> have its own logging context even when log4j is in a shared
> classloader.
> http://qos.ch/logging/sc.html
>
> There is an implementation of this in the new Log4j sandbox.
>
http://cvs.apache.org/viewcvs/jakarta-log4j-sandbox/src/java/org/apache/log4
j/selector/ContextClassLoaderSelector.java?rev=1.1&content-type=text/vnd.vie
wcvs-markup
>
> Plus, here is a log4j context initializer for use under Tomcat:
>
http://cvs.apache.org/viewcvs/jakarta-log4j-sandbox/src/java/org/apache/log4
j/servlet/InitContextListener.java?rev=1.1&content-type=text/vnd.viewcvs-mar
kup
>
> I know they work because I wrote them.
>
> Jake
>
>
> Thursday, February 13, 2003, 12:29:29 PM, you wrote:
>
> SS> This is what I have defined at the beginning (could be causing the
problem?)
>
> SS>     private static final Log log =
LogFactory.getLog(Initializer.class);
>
> SS> The log factory is the org.apache.commons.logging.LogFactory.
>
> SS> This is what I have in a servlet that gets preloaded...
>
> SS>   String log4jFile = _config.getInitParameter("LOG4J_FILE");
> SS>   if (log4jFile == null) throw new ServletException("Parameter LOG4J
cannot
> SS> be null");
> SS>   DOMConfigurator.configureAndWatch(log4jFile);
> SS>   log.info("Log configured");
>
> SS> You would think that would do it but the log.info line gets sent to
Tomcat's
> SS> console screen and not to the file that I have defined...
>
> SS> I do not have the log4j file in my war because I want to be able to
> SS> dynamically change the log msg levels without having to re-deploy...
>
> SS> I also had trouble with Tomcat not finding the log4j.dtd in the log4j
> SS> jar....  I had to extract it from the jar and put it somewhere...
>
> SS> ----- Original Message -----
> SS> From: "Ron Day" <[EMAIL PROTECTED]>
> SS> To: "Tomcat Users List" <[EMAIL PROTECTED]>
> SS> Sent: Thursday, February 13, 2003 1:15 PM
> SS> Subject: RE: Log4J and tomcat
>
>
> >> Try putting log4j.jar in your WEB-INF/lib directory, and your
log4j.props
> SS> in
> >> your classes directory.
> >> or
> >> set up a servlet that loads on startup that uses the log4j method to
> SS> define
> >> the path to your prop file, in the init().
> >>
> >> -----Original Message-----
> >> From: Sloan Seaman [mailto:[EMAIL PROTECTED]]
> >> Sent: Wednesday, February 12, 2003 3:23 PM
> >> To: [EMAIL PROTECTED]
> >> Subject: Log4J and tomcat
> >>
> >>
> >> I'm deploying a war file using tomcat and I wish to use Apache's common
> >> logging api to log things (log4j behind the scenes).
> >>
> >> For some reason my configuration file seems to be getting ignored but
my
> >> log.info msgs are showing up in the console window for Tomcat.
> >>
> >> Can someone tell me why this is happening?
> >>
> >> How do I get my app to use my log4j conf file?
> >>
> >> Thanks!
> >> --
> >> Sloan
> >>
> >>
> >>
> >> ---------------------------------------------------------------------
> >> 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]
> >>
> >>
>
>
> SS> ---------------------------------------------------------------------
> SS> To unsubscribe, e-mail: [EMAIL PROTECTED]
> SS> For additional commands, e-mail: [EMAIL PROTECTED]
>
>
>
> --
> Best regards,
>  Jacob                            mailto:[EMAIL PROTECTED]
>
>
> ---------------------------------------------------------------------
> 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