问题
I have a default tomcat installation with no change to the logging configuration. The log files (in particular catalina.out) appear to be getting rolled (daily) correctly.
However as well as the daily logs there is also a catalina.out file, which just continues to grow. This is what I need to fix, ie have it cleared daily (or remove it altogether if possible)
Can someone explain what is going on here and the best best strategy for controlling that log file size?
Just to clarify the output is being written to catalina.out and the daily log simultaneously
-rw-r--r-- 1 solr solr 90920663 Jul 18 01:16 logs/catalina.2009-07-18.log
-rw-r--r-- 1 solr solr 238010 Jul 18 01:16 logs/catalina.out
Setting swallowOutput appears to not make any difference.
The application being run under tomcat is solr in case that is relevant.
回答1:
Fixed it, turns out the standard logging configuration defines a file logger and also a console logger. The file logger goes to the daily catalina log, and the console logger writes to catalina.out.
Fix was to change in conf/logging.properties:
.handlers = 1catalina.org.apache.juli.FileHandler, java.util.logging.ConsoleHandler
to
.handlers = 1catalina.org.apache.juli.FileHandler
That stops anything getting written to catalina.out
回答2:
Hi you may want to try this solution
http://java.dzone.com/articles/how-rotate-tomcat-catalinaout
It uses a cronjob (logrotate) to copy, compress and clean your catalina.out and if you have a look at logrotate you will see it has a lot of additional functionality. It does not interfere with the daily logs, unless you configure it do so. I found it helpful when I was confronted with the same problem.
BTW removing the console handler will only affect messages produced by Tomcat.
回答3:
you can rotate the your catalina.out file by configure :-
Steps:-
1) Goto /etc/logrotate.d and Create file tomcat
2) Paste below line
Rotate by size
/opt/OS/OS2/logs/catalina.out {
copytruncate
daily
rotate 30
compress
missingok
size 20M
}
-- size - backup catelina.out if size is greater then 20MB
OR
- Rotate by Date
/opt/deadpool/apache-tomcat/logs/catalina.out {
copytruncate
dateext
daily
rotate 30
compress
missingok
}
- rotate - Save last 30 rotation
- dateext - backup catelina.out everyday
- daily - Rotation daily basis
- compress - rotation in compress form
- missingok - if something is missing in rotation it will create no impect
3) Restart the server
Its work for me :) Hope this will help someone.
Thank you :)
回答4:
I had same problem on Ubuntu 11.04 SOLR server and catalina.out file was almost 1GB. After
changing logging.properties:
.handlers = 1catalina.org.apache.juli.FileHandler, java.util.logging.ConsoleHandler
to
.handlers = 1catalina.org.apache.juli.FileHandler
That stops logging to catalina.out
You can find logging.properties file on /etc/tomcat6/ folder for Ubuntu Linux.
回答5:
I also noticed my tomcat log folder (/usr/local/tomcat/logs
) was quite huge. To check the size of the log folder do the following du -hs /usr/local/tomcat/logs/
. To resolved this issue by setting up a cron that would clean the files every night or you can run these commands manually. Here is the shell script that would delete files which are 5 days older
#!/bin/sh
find /usr/local/tomcat/logs -name 'catalina.*.log' -mtime +5 -print0 | xargs -0 rm -f
find /usr/local/tomcat/logs -name 'localhost_access_log.*.txt' -mtime +5 -print0 | xargs -0 rm -f
来源:https://stackoverflow.com/questions/1146759/catalina-out-rolling-with-tomcat-6-0