This instruction is only tested with deploying one and only one app on Tomcat. I only needed one anyway. 😉
1. Create a log4j.properties file. You can use the included code below. Make sure you change the “File” parameter to the correct value for your local environment. The source of the code listed below came from here:
log4j.debug=TRUE
log4j.rootLogger=INFO, R
log4j.appender.R=org.apache.log4j.RollingFileAppender
log4j.appender.R.File=/home/i/h/ihrname.ch/tomcatlogs/tomcat.log
log4j.appender.R.MaxFileSize=100KB
log4j.appender.R.MaxBackupIndex=5
log4j.appender.R.layout=org.apache.log4j.PatternLayout
log4j.appender.R.layout.ConversionPattern=%d{yyyy-MM-dd HH:mm:ss.SSSS} %p %t %c – %m%n
2. Copy the file to /webapps/ping-server/WEB-INF/classes directory.
3. Restart Tomcat.
Hey
Thanks for a nice Info. I came to ur blogs searching for log4j configuration on tomacat without restarting it. Do u have any idea abt it. I have a site on shared webspace so restarting tomcat everytime is a pain…
Manoj
Do you have access to redeploy the web app? i.e. ask the server to reload your web app. This is necessary to load servlets. If you can do that, then I that should work also.
above configuration doesn’t working in sun soloris 5.9
please guide
Please provide more information that will help others to help you.
please tell me how to configure log4j on two apps in one server
Hi Rebin,
If you don’t mind having a separate log4j config file for each app, you can always copy a new config file into individual web app’s classes directory.
Hi,
I had a problem with Tomcat console. I have written a log4j.xml file like the following:
After putting this in my application ie in classes directory and running , i am not able to see the deplpyment views in the Tomcat console window ie the information what we will be getting normally.
So please help and this is my mail id
etta.ramesh@gmail.com
Thanking you
Ramesh
Hi Ramesh,
Your log4j.xml content wasn’t included. Did you see the information you normally see in the console in the lof4j log file?
How to configure 1 log4j.xml in axis 2 for different services
How do I configure Log4J to log separately for each web application
Laxmikanth,
You should be able to use the instructions for each separate web application. Just repeat the steps for each web application with it’s own separate configurations. Perhaps you can read Richard Unger’s comment toward the bottom of this page
Hope this helps.
hi
thanks for u r answers
Hi somnath,
You welcome.
I had really hard time to try to get log4j and tomcat working, and with your page i was able to resolve the issue quickly and efficiently.
Thanks!
Hi Kfir,
Good to know this blog entry was useful to you and welcome.
I know that in JBoss you can place log4j.xml in the conf dir.
From some reason, this does not work in tomcat.
Found a general solution.
Simply place the log4j.xml file in tomcat/lib directory. It’s in the classpath, so log4j classes will simply pick it up.
It will work with all web applications using log4j.
Hi asaf,
Thanks for sharing your experience and tip.
But if we have only one log4j.properties /log4j.xml for all web app then all the logs will go in one file only, or do we have a way to configure log4j to write logs to diff files for diff application, using just one log4j.properties/log4j.xml
Hey Dave,
1) I just added log4j.xml and log4j.dtd in the src folder. DO I have to do anything else inorder to use logging in my application. like configuring log4j in xml etc..
2) can I just use log4j.properties instead of log4j.xml
Thanks
Hi Neel,
Does log4j.xml and log4j.dtd works for you? If so, just keep it. If not, you can always try what I wrote.
Tthe article was really helpful for me to start using logger funcationality. … thanks 🙂
hi dave,
i included the log4j.prop file u gave and added to the path where u have specified. i have log4j jar in my classpath and also i have log.java.
but i dont get any log file created on the specified path ?
Please help.
Hi Praveen,
Can you take a look in Tomcat’s log file and see if there is anything related to log4j library being loaded or not?
Hi Dave,
U have all the configuration file in tomcat. How will u access the log object in servlet / jsp and Is there any configuration is required in Web.xml
Karthik
Hey Dave,
This works perfectly. But, I’m curious to know how does log4j know about the log4j.properties file ..is it something that is already setup in Tomcat for log4j ?
Thanks,
Vamsi
Hi guys,
Log4j with tomcat 6 doesn’t seem to be working for me. I have a log4j.prop file placed in the classes dir and the log4j.jar and commons-logging.jar in both classpath and buildpath.
When I try to run build from a cmd the log messages are getting displayed, but the same is not happening on the tomcat console.
My prop file looks like this:
————————-
### direct log messages to stdout ###
log4j.appender.stdout=org.apache.log4j.ConsoleAppender
log4j.appender.stdout.Target=System.out
log4j.appender.stdout.layout=org.apache.log4j.PatternLayout
log4j.appender.stdout.layout.ConversionPattern=%d{ABSOLUTE} %5p %c{1}:%L – %m%n
log4j.rootLogger=warn, stdout
————————-
Can anyone help me out on this??
NOTE: I cannot see the anything on the tomcat console which states that the log4j jars are being loaded.
Thanks,
Param
If anyone has a suggestion please mail me: paramvir_virdi@rediffmail.com
thanks
Hi,
Can any one help me to solve the issue of having indivdual logs for each indivudual aar file running in axis2 (tomcat) environment.
now log4j.xml is under axis2/classes and is overwriting all the services logs in the same file.
this is the content in build.xml
how to put all log4j.xml & lib inside aar. any idea is appreciated.
each Service – each Log file log4j where to configure how to configure..
Any links or suggestions are highly appreciated.
HI, I have same requirement , have u got any solution for this problem.Please share ur findings
HI,
I have same requirement , have u got any solution for this problem.Please do share ur findings
HI LAXMIkant , I have same requirement , have u got any solution for this problem.Please share ur findings
hi,
iam new writing code in web application i have one log4j.xml and log.dtd its fine but i have deployed it with web-inf/classes and using it i write the code looger object and log.error or log.info when it is project was developed it no message regrading to the log4j
please me regarding to this matter in web applications
I am trying to configure the log4j for our tomcat application. I have put the log4j.properties file in the tomcat/common/classes and the log4.jar is also available in the tomcat/common/lib. After restarting the server, i was able to see the file tomcat.log in the tomcat/logs but its empty.
this is the code i ran:
log4j.properties
log4j.rootLogger=INFO, A1
log4j.appender.A1=org.apache.log4j.FileAppender
log4j.appender.A1=org.apache.log4j.RollingFileAppender
log4j.appender.A1.File=${catalina.home}/logs/tomcat.log
log4j.appender.R.layout=org.apache.log4j.PatternLayout
log4j.appender.R.layout.ConversionPattern=%p %t %c – %m%n
simple jsp test code:
FYI, all this is running on a Unix box.
Pl, help me out with this.
One thing in my above code, the “R” at appender.R.layout and appender.R.ConversionPattern should be “A1”.
Also, i this working somehow, now all the logs are going into tomcat.log.
But i want to know if there is a way to log on webapp level.
for example, i have a application called “APPS” under the tomcat/webapps.
Is it possible to use log4j and create a log file for just the APPS application?
Hey Dave,
I have my log4j.properties(the same u have given here) in WEB-INF/classes and the needed jars in WEB-INF/lib , but still its not working in my web app…..i am using tomcat 5.5…can you please help me out ….thanks
Hi
I have a Axis2 web service that I have deployed in a Tomcat server. Inside the webservice I have the log4j.xml file (in the src folder), which has the FilePath=”./log/MyWebService.log” for log file to be created. Whenever the web service is invoked, I can see the log statements generated by log4j printed on catalina.out. But the MyWebService.log file is not being generated. Iam using DailyRollingFileAppender. Can anybody please help me out..Thanks in advance.
You have to make sure, that the user, who runs tomcat, has enough rights to write into the specified file…
Thanks Dave,
Trolling the net for a solution, yours is the most useful info on the subject I found! I just copied your snippet and saved it as log4j.properties in the WEB-INF/classes folder and hey presto! It worked!
If you have more than one war-file deployed in Tomcat’s webapps folder, the “trick” that worked for me is to give each war-file’s log file a different name, e.g.
assuming you have two apps deployed, this is how you could name them (my system is a Windows XP):
log4j.appender.R.File=C:/Program Files/apache-tomcat-6.0.24/logs/app1.log for the one app,
and log4j.appender.R.File=C:/Program Files/apache-tomcat-6.0.24/logs/app2.log for the other.
This way, each app writes to its own log file.
Thanks again for your help! It was short and to the point.
Hi Harry,
can u pls elaborate on ur solution.By adding two lines
” log4j.appender.R.File=C:/Program Files/apache-tomcat-6.0.24/logs/app1.log for the one app,
and log4j.appender.R.File=C:/Program Files/apache-tomcat-6.0.24/logs/app2.log for the other. ”
Ho will log4j come to know which application log will go in app1.log and wich will go to app2.log, Can u please paste ur complete log4j.prop and tell in detail how to do this.
Hi,
I am using log4j logging mechanism in my application.
But i m getting an error on tomcat console like : Unable to find log4j.xml…..
In which directory i need to put log4j.xml ????
Please reply me om my mailid: amol.chitte87@gmail.com
i m struggling on this …………… 😦
Thank your very much for posting this.
Hi
I have a log4j.properties file for my web app and it gives me proper logging in Eclipse console and a log file as i have specified.But this works on my local tomcat.Now i deployed my application in an external tomcat server .But how do i configure the log4j to show me the logs on this server?
i have a similar kind of problem.
Please tell me what you found out to solve this.
Hi
I have a log4j.properties file for my web app and it gives me proper logging in Eclipse console and a log file as i have specified.But this works on my local tomcat.Now i deployed my application in an external tomcat server .But how do i configure the log4j to show me the logs on this server?
With this information, I was able to answer
concerns out of my head. I have plenty of contacts who might just need this ideas.
Is it fine if I share it with them?.
Hi to every one, the contents present at this site are actually
awesome for people experience, well, keep up the good
work fellows.
Hello, I desire to subscribe for this blog to get most up-to-date updates,
so where can i do it please help.
Hi there, yeah this piece of writing iѕ in fact fastidious аnd I ɦave learned lot оf things from it
օn the topic οf blogging. thankѕ.
Good answers in return of this issue with solid arguments and telling
all regarding that.
Hi! Do you use Twitter? I’d like to follow you if that would be okay.
I’m absolutely enjoying your blog and look forward to new
updates.
Just want to say your article is as amazing. The clearness on your post is simply cool and that i can assume you’re knowledgeable
in this subject. Fine along with your permission allow me
to snatch your feed to keep up to date with approaching post.
Thanks one million and please carry on the gratifying work.