I'm using Tomcat 5.0.30 running on Ubuntu Linux (6.06).
I've made a small webapp which runs fine under Tomcat on Windows, but on Linux I've got a problem with log4j.
I've put "commons-logging-1.1.jar" and "log4j-1.2.13.jar" in the webapps libs directory. In the classes directory I've put log4j.properties which point to the log file: /var/log/ne/ne.log
The problem is that the webapp won't even run as log as the log4j.properties is in the class path. If I remove log4j.properties from the classes directory the application will run, but there's no logging.
This looks like a Tomcat problem, since the webapp runs fine on windows. There's also no error messages in any of the files in /var/log/tomcat5/
I've changed permission so that everyone can do everything with the log file and the directory it's in (/var/log/ne). Tomcat is also started with the root user.
I think this is a classpath issue, because when I remove "commons-logging-1.1.jar" from the webapp's classpath (WEB-INF/lib) it will run fine but without logging.
I see that in CATALINA_HOME/bin (which I assume is Tomcats class path?) there's a file called "commons-logging-api.jar". I don't know if I can safely remove that file without breaking something else?
I've not added the log4j.jar to CATALINA_HOME/common/lib since it's in the webapp's class path.
I'll try to add log4j.DEBUG=true to the log4j.properties as it will also force log4j to print debug info to stdout.
Joined: Nov 23, 2002
I give up.... I've tried everything without getting log4j to work.
If I remove both log4j.jar and commons-logging.jar from the webapp classpath (WEB_INF/lib) I don't get any errors, so it looks like they're already included in tomcats classpath.
I've tried changing the log4j.properties to write to system.out (/var/log/tomcat5/catalina.out) without luck:
# The log4j configuration file.
Then I tried putting log4j.properties in $CATALINA_HOME/shared/classes and $CATALINA_HOME/common/classes, but it still would'nt log anything.
I'm almost starting to cry now.... I hope someone can chime in because I really have run out of ideas.
How can I test if log4j.properties really is in the classpath? Perhaps that's what's wrong...
Joined: Nov 23, 2002
Found a solution: I had installed Tomcat through the Ubuntu Synaptic Package manager. It would seem this was not a healthy install, because I just uninstalled it and installed Tomcat 5.5 manually and everything worked perfectly. What the problem was I never figured out since the install was scattered all over the hard drive.
The only thing that bothers me now is that if I open up /var/log/ne/ne.log in a text editor, say vi, and edit it, log4j will stop logging to the file. I have to restart the webapp to make it start logging again. Anyone know what might cause that?
sorry no help, just want to say thank you for your good style - even though i had no clue what your problem was (like you ;-)) i'm following your thread with interest and am really appreciating that you are updating it.