Unfortunately, it is still not logging my debug statements. I took your advice
and also read through some documents and created a log4j initialization servlet.
Here is the code and results:
#
# COmmon Logging servlet that starts once
#
public class CommonLogging extends HttpServlet {

        public void init() {
                String prefix =  getServletContext().getRealPath("/");
                String file = getInitParameter("log4j-init-file");
                if(file != null) {
                        PropertyConfigurator.configure(prefix+file);
                }
        }

        public void doGet(HttpServletRequest req, HttpServletResponse res) {}

        public void doPost(HttpServletRequest req, HttpServletResponse res) {}
}

#
# In web.xml
#

<servlet>
    <servlet-name>log4j-init</servlet-name>
    <servlet-class>com.foo.CommonLogging</servlet-class>

    <init-param>
      <param-name>log4j-init-file</param-name>
      <param-value>WEB-INF/classes/log4j.lcf</param-value>
    </init-param>

    <load-on-startup>1</load-on-startup>
</servlet>

#
# log4j.lcf in WEB-INF/classes
#
log4j.rootCategory=DEBUG, A2
log4j.appender.A2=org.apache.log4j.DailyRollingFileAppender
log4j.appender.A2.file=logs/tomcat.log
log4j.appender.A2.datePattern='.'yyyy-MM-dd
log4j.appender.A2.append=true
log4j.appender.A2.layout=org.apache.log4j.PatternLayout
log4j.appender.A2.layout.ConversionPattern=%-5p %d{ISO8601} [%t] - %m%n

#
# TestServlet
#
public class TestServlet extends HttpServlet {
       private static Logger logger =
Logger.getLogger(GenerateChartServlet.class.getName());

       public TestServlet() {
       }

       private void doPost(HttpServletRequest req, HttpServletResponse res)
               throws IOException, ServletException
       {
               ...
                // This never gets outputted to log file
               logger.debug("TestServlet: Debbuging");
                ...
       }
}

#
# Output from tomcat.log
#
Dec 20, 2006 1:55:43 PM org.apache.catalina.core.AprLifecycleListener
lifecycleEvent
Dec 20, 2006 1:55:43 PM org.apache.coyote.http11.Http11BaseProtocol init
INFO: Initializing Coyote HTTP/1.1 on http-80
Dec 20, 2006 1:55:43 PM org.apache.catalina.startup.Catalina load
INFO: Initialization processed in 751 ms
Dec 20, 2006 1:55:44 PM org.apache.catalina.core.StandardService start
INFO: Starting service Catalina
Dec 20, 2006 1:55:44 PM org.apache.catalina.core.StandardEngine start
INFO: Starting Servlet Engine: Apache Tomcat/5.5.20
Dec 20, 2006 1:55:44 PM org.apache.catalina.core.StandardHost start
INFO: XML validation disabled
log4j:WARN No appenders could be found for logger
(org.apache.commons.digester.Digester.sax).
log4j:WARN Please initialize the log4j system properly.
DEBUG JspRuntimeContext               - Parent class loader is:
WebappClassLoader
  delegate: false
  repositories:
    /WEB-INF/classes/
----------> Parent Classloader:
[EMAIL PROTECTED]
DEBUG JspServlet                      - Scratch dir for the JSP engine is:
DEBUG JspServlet                      - IMPORTANT: Do not modify the generated
servlets
Dec 20, 2006 1:55:45 PM org.apache.catalina.core.ApplicationContext log
INFO: org.apache.webapp.balancer.BalancerFilter: init(): ruleChain:
[org.apache.webapp.balancer.RuleChain:
[org.apache.webapp.balancer.rules.URLStringMatchRule: Target string: News /
Redirect URL: http://www.cnn.com],
[org.apache.webapp.balancer.rules.RequestParameterRule: Target param name:
paramName / Target param value: paramValue / Redirect URL:
http://www.yahoo.com], [org.apache.webapp.balancer.rules.AcceptEverythingRule:
Redirect URL: http://jakarta.apache.org]]
Dec 20, 2006 1:55:45 PM org.apache.catalina.core.ApplicationContext log
INFO: ContextListener: contextInitialized()
Dec 20, 2006 1:55:45 PM org.apache.catalina.core.ApplicationContext log
INFO: SessionListener: contextInitialized()
Dec 20, 2006 1:55:45 PM org.apache.catalina.core.ApplicationContext log
INFO: ContextListener: contextInitialized()
Dec 20, 2006 1:55:45 PM org.apache.catalina.core.ApplicationContext log
INFO: SessionListener: contextInitialized()
Dec 20, 2006 1:55:46 PM org.apache.coyote.http11.Http11BaseProtocol start
INFO: Starting Coyote HTTP/1.1 on http-80
Dec 20, 2006 1:55:46 PM org.apache.jk.common.ChannelSocket init
INFO: JK: ajp13 listening on /0.0.0.0:8009
Dec 20, 2006 1:55:46 PM org.apache.jk.server.JkMain start
INFO: Jk running ID=0 time=0/27  config=null
Dec 20, 2006 1:55:46 PM org.apache.catalina.storeconfig.StoreLoader load
INFO: Find registry server-registry.xml at classpath resource
Dec 20, 2006 1:55:46 PM org.apache.catalina.startup.Catalina start
INFO: Server startup in 2322 ms
DEBUG ManagerBase                     - Start expire sessions StandardManager at
1166641005968 sessioncount 0
DEBUG ManagerBase                     - End expire sessions StandardManager
processingTime 0 expired sessions: 0

Any ideas? Thanks so much for your help!!

Quoting Jacob Kjome <[EMAIL PROTECTED]>:

>
> 1.  Don't configure from the servlet.  Either let Log4j autoconfigure
> itself by finding log4j.properties or log4j.xml in the classpath or
> configure from a class that's guaranteed to be called once (or has
> methods that are guaranteed to be called once) such as a servlet
> context listener.
>
> 2.  Where do you expect Log4j to find log4j.properties?  I bet you
> didn't expect that it would look in the directory from which the JVM
> started.  The String version of the method takes a file path.  If you
> give it a relative one, it will look relative to the directory from
> the JVM started.  If you started Tomcat from it's script, it's
> looking in CATALINA_HOME/bin for the properties file.  Avoid using a
> File.  If you configure yourself, use a URL.  You can load up a
> resource from the classloader as a URL and pass that to the
> configurator.   I would avoid configuring yourself unless you have a
> really good reason to do it, though.
>
> 3.  From the looks of it, you have Log4j in common/lib or shared/lib,
> right?  You should avoid this too unless you know what you are
> doing.  All your app that share this log4j.jar will log to the same
> logger repository.  And each time you reconfigure an app, you
> reconfigure *all* apps.  Do yourself a favor and put log4j.jar in
> WEB-INF/lib of each app you use and put the config file in
> WEB-INF/classes.  Let Log4j autoconfigure itself and you will be golden.
>
>
> Jake
>
> At 09:33 PM 12/19/2006, you wrote:
>  >I am trying to use log4j in my application under Tomcat 5.5. However, it is
>  >producing mounds of debugging information but none of it lists the items I
>  >specify. Here is a portion of my application, the config file, and
> a portion of
>  >the output. Please note that logger.debug("TestServlet: Debugging) never
> gets
>  >printed in the log file even though the function gets called!
>  >
>  >// TestServlet
>  >public class TestServlet extends HttpServlet {
>  >       private static Logger logger =
>  >Logger.getLogger(GenerateChartServlet.class.getName());
>  >
>  >       public TestServlet() {
>  >               PropertyConfigurator.configure("log4j.properties");
>  >       }
>  >
>  >       private void doPost(HttpServletRequest req, HttpServletResponse res)
>  >               throws IOException, ServletException
>  >       {
>  >               ...
>  >                // This never gets outputted to log file
>  >               logger.debug("TestServlet: Debbuging");
>  >                ...
>  >       }
>  >}
>  >
>  >#
>  ># Log4j configuration file.
>  >#
>  >log4j.rootCategory=DEBUG, A2
>  >
>  ># Available levels are DEBUG, INFO, WARN, ERROR, FATAL
>  >#
>  >#
>  ># A2 is a DailyRollingFileAppender
>  >#
>  >
>  >log4j.appender.A2=org.apache.log4j.DailyRollingFileAppender
>  >log4j.appender.A2.file=logs/tomcat.log
>  >log4j.appender.A2.datePattern='.'yyyy-MM-dd
>  >log4j.appender.A2.append=true
>  >log4j.appender.A2.layout=org.apache.log4j.PatternLayout
>  >log4j.appender.A2.layout.ConversionPattern=%-5p %d{ISO8601} [%t] - %m%n
>  >
>  >#
>  >#OUTPUT
>  >#
>  >DEBUG 2006-12-19 22:08:11,593 [main] -   bodyText=''
>  >DEBUG 2006-12-19 22:08:11,593 [main] -   Fire body() for
>  >ObjectCreateRule[className=org.apache.catalina.deploy.ContextResource,
>  >attributeName=null]
>  >DEBUG 2006-12-19 22:08:11,593 [main] -   Fire body() for
>  >SetNextRule[methodName=addResource,
>  >paramType=org.apache.catalina.deploy.ContextResource]
>  >DEBUG 2006-12-19 22:08:11,593 [main] -   Popping body text ''
>  >DEBUG 2006-12-19 22:08:11,593 [main] -   Fire end() for
>  >SetNextRule[methodName=addResource,
>  >paramType=org.apache.catalina.deploy.ContextResource]
>  >DEBUG 2006-12-19 22:08:11,593 [main] -   Fire end() for
>  >ObjectCreateRule[className=org.apache.catalina.deploy.ContextResource,
>  >attributeName=null]
>  >DEBUG 2006-12-19 22:08:11,593 [main] -
> [ObjectCreateRule]{web-app/resource-ref}
>  >Pop org.apache.catalina.deploy.ContextResource
>  >DEBUG 2006-12-19 22:08:11,593 [main] - ignorableWhitespace(
>  >
>  >)
>  >DEBUG 2006-12-19 22:08:11,594 [main] - endElement(,,web-app)
>  >DEBUG 2006-12-19 22:08:11,594 [main] -   match='web-app'
>  >DEBUG 2006-12-19 22:08:11,594 [main] -   bodyText=''
>  >DEBUG 2006-12-19 22:08:11,594 [main] -   Fire body() for
>  >[EMAIL PROTECTED]
>  >DEBUG 2006-12-19 22:08:11,594 [main] -   Popping body text ''
>  >DEBUG 2006-12-19 22:08:11,594 [main] -   Fire end() for
>  >[EMAIL PROTECTED]
>  >DEBUG 2006-12-19 22:08:11,594 [main] - endDocument()
>  >DEBUG 2006-12-19 22:08:11,628 [main] - Opening /dev/urandom
>  >DEBUG 2006-12-19 22:08:11,628 [main] - Registering
>  >Catalina:type=Manager,path=/ftrade/graph,host=localhost
>  >DEBUG 2006-12-19 22:08:11,628 [main] - Force random number initialization
>  >starting
>  >DEBUG 2006-12-19 22:08:11,628 [main] - Getting message digest component for
>  >algorithm MD5
>  >DEBUG 2006-12-19 22:08:11,628 [main] - Completed getting message digest
>  >component
>  >DEBUG 2006-12-19 22:08:11,628 [main] - getDigest() 0
>  >DEBUG 2006-12-19 22:08:11,628 [main] - Force random number initialization
>  >completed
>  >DEBUG 2006-12-19 22:08:11,628 [main] - Start: Loading persisted sessions
>  >DEBUG 2006-12-19 22:08:11,628 [main] - Loading persisted sessions from
>  >SESSIONS.ser
>  >DEBUG 2006-12-19 22:08:11,628 [main] - No persisted data file found
>  >DEBUG 2006-12-19 22:08:11,628 [main] - Sending application start events
>  >DEBUG 2006-12-19 22:08:11,628 [main] - Starting filters
>  >DEBUG 2006-12-19 22:08:11,629 [main] - Parent class loader is:
>  >WebappClassLoader
>  >..
>  >..
>  >
>  >---------------------------------------------------------------------
>  >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]
>
>



---------------------------------------------------------------------
To unsubscribe, e-mail: [EMAIL PROTECTED]
For additional commands, e-mail: [EMAIL PROTECTED]

Reply via email to