Here's my situation... I posted an earlier topic regarding my problem, but since then since the scenario regarding my problem has kind of changed, I decided to make a new thread (all apologies if this was an inappropriate action).
I changed my Ant build script to move the log4j.properties file into my WEB-INF/classes dir. Also, my log4j-1.2.9.jar gets moved inside my WEB-INF/lib dir. But for some odd reason, when I run Tomcat, it doesn't seem to know where my log4j.properties file is! My Log4jInitServlet seems to have the path wrong!
Furthermore, it throws a NullPointerException but at the same time, right afterwards, it logs my XmlConfigInitServlet (I have it set there!).
Here's what my console says:
My XmlConfigInitServlet class (as you can see that I am still using getRealPath()) but will change it when I get my Log4jInitServlet properly set up. For some odd reason, its logging what I have put in here into my Tomcat's console. How could this be if Tomcat complained that it couldn't find my log4j.properties file?
Here's the contents of my log4j.properties file located under mywebapp/WEB-INF/classes:
From the looks of everything, obviously there's a pathing issue in my Log4jInitServlet but I still don't understand how it can successfully log my XmlConfigServlet if my log4j.properties is supposed to be unavailable?! Why is it throwing an NullPointerException?
Can anyone suggest a better way to use getResourceAsStream()? What I am trying to do is set my undeployWars to false in server.xml so that Tomcat can read my log4j.properties file and my xml config file (attributes-config.xml) from within the war file.
Sincerely yours and happy holidays,
[ December 22, 2006: Message edited by: James Dekker ] [ December 22, 2006: Message edited by: Bear Bibeault ]
Is that the actual code you are running? Because I would expect this line of codeto be searching for a resource named "com.acme.mywebapp.logging.propFile". The most likely location for such a file would be in your WEB-INF/classes/com/acme/mywebapp/logging directory. (You seem to be using a constant string instead of a variable name, but your method of getting what's in that variable isn't going to work anyway.
What I would do is this: put the log4j.properties file in your WEB-INF/classes directory and use this line of code to access it...
Joined: Dec 09, 2006
Thanks for the response!
I actually got it working (and when the undeployWars="false" in server.xml, it still works!), like this:
Now, the problem is... How do I make it so that the PropertyConfigurator would work with this?