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]