1 , Tomcat's access log accesslogs regular or quantitative deletions
a turn on the Tomcat access log
Edit the ${catalina}/conf/server.xml file. Note: ${catalina} is a Tomcat installation directory
Remove the following comments (<!---->).
<!--<valveclassname= "Org.apache.catalina.valves.AccessLogValve"
directory= "Logs" prefix= "Localhost_access_log." suffix= ". txt"
pattern= "Common" resolvehosts= "false"/>-->
Open the Access log for the profile and interpret the corresponding parameters:
b Extend the accesslogvalve by override this Function:log (), set up periodic or quantitative delete access logs
Public voidEmptyfile () {String LogPath= System.getproperty ("Catalina.base"); //Rotatable=false, quantitative purge only one log file Localhost_access_log.log if( This. rotatable = =false) { synchronized( This) {System.out.println ("------Log size is------:" + This. Currentlogfile.length ()); if( This. Currentlogfile.length () > 10 * 1024) { This. Currentlogfile.delete (); Open (); } } } Else { //log cleanup with date '//Localhost_access_log.2016-12-16.23.37.log//Localhost_access_log.2016-12-16.23.39.log if(NewFile (LogPath). Isdirectory ()) { //get a collection of files in a folderfile[] Logs =NewFile (LogPath). Listfiles (); //set the date format set here, consistent with the parameters in the configuration fileSimpleDateFormat DateFormat =NewSimpleDateFormat ("yyyy-mm-dd.hh.mm"); //iterating through the collection for(inti = 0; i < logs.length; i++) {File log=Logs[i]; //get the name of the I log, intercept the middle date field, and turn it into a long type S intStart = Log.getname (). IndexOf (".") + 1; intEnd = Log.getname (). LastIndexOf ("."); //gets the time in the log name (2016-12-16.23.37)String Datestr =logpath.substring (start, end); //converts a String type (2016-12-16.23.37) to a long type LongLonint = 0; Try{lonint=Dateformat.parse (DATESTR). GetTime (); } Catch(ParseException e) {//TODO auto-generated Catch blockE.printstacktrace (); } System.out.println ("------Old-log date is------:" +lonint); //system time minus log name gets more time lag than set in config file delete if((System.currenttimemillis ()-Lonint)/($ *) > 10) {log.delete (); Open (); } } } } }
2 , Tomcat's normal log (catlina.out, localhost) configuration log4j log framework for log rollback
Log4j Configure the Tomcat logs to be deleted periodically:
First, you need to download a 3 jar package.
Tomcat-juli.jar and Tomcat-juli-adapters.jar, Log4j.jar
http://www.apache.org/dist/logging/log4j/1.2.17/
http://www.apache.org/dist/tomcat/tomcat-7/v7.0.69/bin/extras/
The directory where 3 jar packages are placed at a time is:
Tomcat-juli-adapters.jar and Log4j.jar into the ($CATALINA _base/lib) directory
Tomcat-juli.jar into the $CATALINA _base/bin/directory, directly covering the original Tomcat-juli.jar can be
Delete the $catalina_base/conf/logging.properties file to prevent Java.util.logging from generating a 0-length log file.
Modify the Conf/context.xml file in Tomcat to <Context> <context swallowoutput= "true" >.
Finally, create a log4j.properties in the Tomcat6.0.43/lib directory, add the following and save:
(Here is an example of regular cleanup of catalina.out)
******************************************************************************
Log4j.rootlogger = INFO, CATALINA
# Define all the Appenders
Log4j.appender.CATALINA = Org.apache.log4j.DailyRollingFileAppender
Log4j.appender.CATALINA.File = ${catalina.base}/logs/catalina
Log4j.appender.CATALINA.Append = True
log4j.appender.CATALINA.Encoding = UTF-8
# Roll-over The log once per day
Log4j.appender.CATALINA.DatePattern = '. ' Yyyy-mm-dd '. Log '
Log4j.appender.CATALINA.layout = Org.apache.log4j.PatternLayout
Log4j.appender.CATALINA.layout.ConversionPattern =%d [%t]%-5p%c-%m%n
Log4j.appender.LOCALHOST = Org.apache.log4j.DailyRollingFileAppender
Log4j.appender.LOCALHOST.File = ${catalina.base}/logs/localhost
Log4j.appender.LOCALHOST.Append = True
log4j.appender.LOCALHOST.Encoding = UTF-8
Log4j.appender.LOCALHOST.DatePattern = '. ' Yyyy-mm-dd '. Log '
Log4j.appender.LOCALHOST.layout = Org.apache.log4j.PatternLayout
Log4j.appender.LOCALHOST.layout.ConversionPattern =%d [%t]%-5p%c-%m%n
Log4j.appender.MANAGER = Org.apache.log4j.DailyRollingFileAppender
Log4j.appender.MANAGER.File = ${catalina.base}/logs/manager
Log4j.appender.MANAGER.Append = True
log4j.appender.MANAGER.Encoding = UTF-8
Log4j.appender.MANAGER.DatePattern = '. ' Yyyy-mm-dd '. Log '
Log4j.appender.MANAGER.layout = Org.apache.log4j.PatternLayout
Log4j.appender.MANAGER.layout.ConversionPattern =%d [%t]%-5p%c-%m%n
Log4j.appender.host-manager = Org.apache.log4j.DailyRollingFileAppender
Log4j.appender.host-manager.file = ${catalina.base}/logs/host-manager
Log4j.appender.host-manager.append = True
log4j.appender.host-manager.encoding = UTF-8
Log4j.appender.host-manager.datepattern = '. ' Yyyy-mm-dd '. Log '
Log4j.appender.host-manager.layout = Org.apache.log4j.PatternLayout
Log4j.appender.host-manager.layout.conversionpattern =%d [%t]%-5p%c-%m%n
Log4j.appender.CONSOLE = Org.apache.log4j.ConsoleAppender
log4j.appender.CONSOLE.Encoding = UTF-8
Log4j.appender.CONSOLE.layout = Org.apache.log4j.PatternLayout
Log4j.appender.CONSOLE.layout.ConversionPattern =%d [%t]%-5p%c-%m%n
# Configure which loggers log to which appenders
Log4j.logger.org.apache.catalina.core.ContainerBase. [Catalina]. [localhost] = INFO, localhost
Log4j.logger.org.apache.catalina.core.ContainerBase. [Catalina]. [localhost]. [/manager] =\
INFO, MANAGER
Log4j.logger.org.apache.catalina.core.ContainerBase. [Catalina]. [localhost]. [/host-manager] =\
INFO, Host-manager
Reboot Tomcat and you'll see Java-djava.util.logging.config.file turned into Java-dnop-djava.util.logging.config.file, indicating that the configuration was successful.
The effect is as follows:
Reference:
Http://alvinalexander.com/java/jwarehouse/apache-tomcat-6.0.16/java/org/apache/catalina/valves/AccessLogValve.java.shtml
Http://code.taobao.org/p/tomcat/diff/3/tc8.0.x/java/org/apache/catalina/valves/AccessLogValve.java
Http://www.tuicool.com/articles/ymyiuiu
Http://sanwen8.cn/p/520j7Qi.html
Http://www.cnblogs.com/dimmacro/p/5566480.html
http://blog.csdn.net/jackljf/article/details/17428335
Shell parsing Tomcat Access log format
Http://www.cnblogs.com/zhwj184/archive/2013/03/28/3027422.html
Java class write log and timed delete log
http://blog.csdn.net/high2011/article/details/50451216
Http://blog.csdn.net/jsky_studio/article/details/41686597?spm=5176.8246799.blogcont.4.WnVUiV>
Tomcat log Cleanup (with extension accesslogvalve)