File APIs for Java Developers
Manipulate DOC, XLS, PPT, PDF and many others from your application.
The moose likes Tomcat and the fly likes Log4j and Tomcat problem Big Moose Saloon
  Search | Java FAQ | Recent Topics | Flagged Topics | Hot Topics | Zero Replies
Register / Login
JavaRanch » Java Forums » Products » Tomcat
Bookmark "Log4j and Tomcat problem" Watch "Log4j and Tomcat problem" New topic

Log4j and Tomcat problem

Egil Poma
Ranch Hand

Joined: Nov 23, 2002
Posts: 40
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 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 is in the class path. If I remove 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/

What's wrong?

My look like this:

# The log4j configuration file.

log4j.rootCategory=DEBUG, FileApp

# FileApp

# File appender

# Max filesize before creating new log file.

# How many backup files to keep

# Log layout
log4j.appender.FileApp.layout.ConversionPattern=%d{ISO8601} | %-5.5p | %-35.35F | %25M() | %-4L | %m%n
Scott Selikoff
Saloon Keeper

Joined: Oct 23, 2005
Posts: 3753

Moving to Tomcat forum.

[OCA 8 Book] [Blog]
Egil Poma
Ranch Hand

Joined: Nov 23, 2002
Posts: 40
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 as it will also force log4j to print debug info to stdout.
Egil Poma
Ranch Hand

Joined: Nov 23, 2002
Posts: 40
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 to write to system.out (/var/log/tomcat5/catalina.out) without luck:

# The log4j configuration file.

Then I tried putting 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 really is in the classpath? Perhaps that's what's wrong...
Egil Poma
Ranch Hand

Joined: Nov 23, 2002
Posts: 40
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?
Jan Groth
Ranch Hand

Joined: Feb 03, 2004
Posts: 456
hi egil,

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.

I agree. Here's the link:
subject: Log4j and Tomcat problem
It's not a secret anymore!