Tomcat log clearing (including extended AccessLogValve) and Tomcat access logs
1, Tomcat access log AccessLogs regular or quantitative Deletion
AEnable tomcat access Logging
Edit the $ {catalina}/conf/server. xml file. Note: $ {catalina} is the tomcat installation directory.
Comment the following (<! -->.
<! -- <ValveclassName = "org. apache. catalina. valves. AccessLogValve"
Directory = "logs" prefix = "localhost_access_log." suffix = ". txt"
Pattern = "common" resolveHosts = "false"/> -->
Enable the access log for the configuration file and explain the corresponding parameters:
BExtend the AccessLogValve by override this function: log (),Set regular or quantitative deletion of access logs
Public void emptyFile () {String logPath = System. getProperty ("catalina. base "); // rotatable = false. 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 () & gt; 10*1024) {this. currentLogFile. delete (); open () ;}}else {// log clearing method containing date '// localhost_access_log.2016-12-16.23.37.log // localhost_access_log.2016-12-16.23.39.log if (new File (logPath ). isDirectory () {// obtain the File set File [] logs = new File (logPath) in the folder ). listFiles (); // set the date format set here, which is consistent with the parameters in the configuration file SimpleDateFormat dateFormat = new SimpleDateFormat ("yyyy-MM-dd.HH.mm "); // traverse the set for (int I = 0; I <logs. length; I ++) {File log = logs [I]; // obtain the name of the I log and intercept the Date Field in the middle, convert to long type s int start = log. getName (). indexOf (". ") + 1; int end = log. getName (). lastIndexOf (". "); // The time in the obtained log name (2016-12-16.23.37) String dateStr = logPath. substring (start, end); // convert string type (2016-12-16.23.37) to long type long lonInt = 0; try {lonInt = dateFormat. parse (dateStr ). getTime ();} catch (ParseException e) {// TODO Auto-generated catch block e. printStackTrace ();} System. out. println ("------ old-log date is ------:" + lonInt); // the System time minus the time difference obtained in the log name is greater than the time set in the configuration file to delete if (System. currentTimeMillis ()-lonInt)/(1000*60)> 10) {log. delete (); open ();}}}}}
2Tomcat common logs (catlina. out, localhost) configure the log4j log framework to implement log rollback
Log4j configures tomcat logs and regularly deletes them:
First, download three jar packages.
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 Three jar packages are placed in the following directory at a time:
Tomcat-juli-adapters.jar and log4j. jar are placed under the ($ CATALINA_BASE/lib) Directory
Tomcat-juli.jar into $ CATALINA_BASE/bin/directory, directly overwrite the original tomcat-juli.jar can be
Delete the $ CATALINA_BASE/conf/logging. properties file to prevent java. util. logging from generating zero-length log files.
Modify the conf/context. xml file in Tomcat and set <Context> to <Context swallowOutput = "true">.
Finally, create a log4j. properties under the tomcat6.0.43/lib directory, add the following content and save it:
(Taking regular cleaning of catalina. out as an example)
**************************************** **************************************
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] %-5 p % 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] %-5 p % 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] %-5 p % 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] %-5 p % c-% m % n
Log4j. appender. CONSOLE = org. apache. log4j. leleappender
Log4j. appender. CONSOLE. Encoding = UTF-8
Log4j. appender. CONSOLE. layout = org. apache. log4j. PatternLayout
Log4j. appender. CONSOLE. layout. ConversionPattern = % d [% t] %-5 p % 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
Restart tomcat and you will see that java-Djava. util. logging. config. file is changed to java-Dnop-Djava. util. logging. config. file, indicating that the configuration is successful.
The effect is as follows:
Refer:
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 Analysis of tomcat access log format
Http://www.cnblogs.com/zhwj184/archive/2013/03/28/3027422.html
Java write logs and regularly delete logs
Http://blog.csdn.net/high2011/article/details/50451216
Http://blog.csdn.net/jsky_studio/article/details/41686597? Spm = 5176.1096799.blogcont.4.wnvuiv>