Tomcat log Cleanup (with extension accesslogvalve)

Source: Internet
Author: User
Tags dateformat log4j

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)

Contact Us

The content source of this page is from Internet, which doesn't represent Alibaba Cloud's opinion; products and services mentioned on that page don't have any relationship with Alibaba Cloud. If the content of the page makes you feel confusing, please write us an email, we will handle the problem within 5 days after receiving your email.

If you find any instances of plagiarism from the community, please send an email to: info-contact@alibabacloud.com and provide relevant evidence. A staff member will contact you within 5 working days.

A Free Trial That Lets You Build Big!

Start building with 50+ products and up to 12 months usage for Elastic Compute Service

  • Sales Support

    1 on 1 presale consultation

  • After-Sales Support

    24/7 Technical Support 6 Free Tickets per Quarter Faster Response

  • Alibaba Cloud offers highly flexible support services tailored to meet your exact needs.