1、tomcat的访问日志AccessLogs定期或者定量删除

a 开启tomcat访问日志

编辑${catalina}/conf/server.xml文件.注:${catalina}是tomcat的安装目录

把以下的注释(<!-- -->)去掉即可。

<!--<ValveclassName="org.apache.catalina.valves.AccessLogValve"

directory="logs"  prefix="localhost_access_log."suffix=".txt"

pattern="common" resolveHosts="false"/>-->

下图为配置文件开启访问日志,以及对应参数的解释:

b extend the AccessLogValve by override this function: log(),设置定期或定量删除访问日志

public void emptyFile() {
String logPath = System.getProperty("catalina.base");
// rotatable=false,定量清除只有一个日志文件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 {
// 含有日期的日志清除方式`
// localhost_access_log.2016-12-16.23.37.log
// localhost_access_log.2016-12-16.23.39.log
if (new File(logPath).isDirectory()) {
// 获取文件夹中的文件集合
File[] logs = new File(logPath).listFiles();
// 设置系统这里设置的日期格式,和配置文件里的参数保持一致
SimpleDateFormat dateFormat = new SimpleDateFormat("yyyy-MM-dd.HH.mm");
// 遍历集合
for (int i = 0; i < logs.length; i++) {
File log = logs[i];
// 获取到第i个日志的名称,截取中间的日期字段,转成long型s
int start = log.getName().indexOf(".") + 1;
int end = log.getName().lastIndexOf(".");
// 获取到的日志名称中的时间(2016-12-16.23.37)
String dateStr = logPath.substring(start, end);
// 将字符串型的(2016-12-16.23.37)转换成long型
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);
// 系统时间减去日志名字中获取的时间差大于配置文件中设置的时间删除
if ((System.currentTimeMillis() - lonInt) / (1000 * 60) > 10) {
log.delete();
open();
}
}
}
} }

2、tomcat的普通日志(catlina.out、localhost)配置log4j日志框架实现日志回滚

Log4j配置tomcat日志,定期删除:

首先,需要下载3个jar包.

tomcat-juli.jar 和 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/

3个jar包一次放入的目录为:

tomcat-juli-adapters.jar 和 log4j.jar放入 ($CATALINA_BASE/lib)目录下

tomcat-juli.jar放入 $CATALINA_BASE/bin/目录,直接覆盖原有的tomcat-juli.jar即可

删除$CATALINA_BASE/conf/logging.properties文件,防止java.util.logging生成零长度的日志文件。

修改Tomcat中的conf/context.xml文件,将<Context>为<Context swallowOutput="true">。

最后,在tomcat6.0.43/lib目录下创建一个log4j.properties, 加入如下内容并保存:

(这里以定期清理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

重启tomcat,就可以看到java -Djava.util.logging.config.file变成了java -Dnop -Djava.util.logging.config.file,说明配置成功了

效果如下所示:

 

参考:

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 分析tomcat访问日志 格式

http://www.cnblogs.com/zhwj184/archive/2013/03/28/3027422.html

java类写入日志和定时删除日志

http://blog.csdn.net/high2011/article/details/50451216

http://blog.csdn.net/jsky_studio/article/details/41686597?spm=5176.8246799.blogcont.4.WnVUiV>

Tomcat 日志清除(含扩展AccessLogValve)的更多相关文章

  1. tomcat 日志 按天自动分割 设定时任务定时清除

    一.日志分割所需jar包 1.下载tomcat   apache-tomcat-7.0.79.tar.gz 地址:http://www.apache.org/dist/tomcat/tomcat-7/ ...

  2. 清除tomcat日志文件的shell脚本

    #! /bin/bash d=`date +%F` exec >> /mydata/script/logs/$d>& echo "开始执行清除tomcat日志文件& ...

  3. Tomcat日志问题

    [Tomcat日志设定][tomcat控制台日志][log4j日志] 1 Tomcat 日志概述 Tomcat 日志信息分 为 两 类 : 一是运行中的日志,它主要 记录 运行的一些信息,尤其是一些异 ...

  4. Tomcat日志设定

    1    Tomcat 日志概述 Tomcat 日志信息分 为 两 类 : 一.是运行中的日志,它主要 记录 运行的一些信息,尤其是一些异常 错误 日志信息 .二.是 访问 日志信息,它 记录 的 访 ...

  5. Tomcat日志系统详解

    综合:Tomcat下相关的日志文件 Cataline引擎的日志文件,文件名catalina.日期.log Tomcat下内部代码丢出的日志,文件名localhost.日期.log(jsp页面内部错误的 ...

  6. 《Tomcat日志系统详解》

    综合:Tomcat下相关的日志文件 Cataline引擎的日志文件,文件名catalina.日期.log Tomcat下内部代码丢出的日志,文件名localhost.日期.log(jsp页面内部错误的 ...

  7. [转]Tomcat日志详解

    Tomcat下相关的日志文件: 1.Cataline引擎的日志文件,文件名为catalina.{date}.log 2.Tomcat下内部代码丢出的日志,文件名为localhost.{date}.lo ...

  8. 配置Tomcat监听80端口、配置Tomcat虚拟主机、Tomcat日志

    6月27日任务 16.4 配置Tomcat监听80端口16.5/16.6/16.7 配置Tomcat虚拟主机16.8 Tomcat日志扩展邱李的tomcat文档 https://www.linuser ...

  9. 自定义日志阅读器——包括了一个load取Tomcat日志的分析器

    最近在写往公司产品里添加Tomcat适配器,以支持Tomcat.有一些功能需要摘取到Tomcat的部分日志.没有合适的工具,也不想去网上找了,就自己写了一个. 简单的画了一下设计方案: 下面直接上代码 ...

随机推荐

  1. mono for android Listview 里面按钮 view Button click 注册方法 并且传值给其他Activity 主要是context

    需求:为Listview的Item里面的按钮Button添加一个事件,单击按钮时通过事件传值并跳转到新的页面. 环境:mono 效果: 布局代码 主布局 <?xml version=" ...

  2. mono for android学习过程系列教程(5)

    这一讲主要需要了解的安卓UI元素是Spinner.这个元素类似我们 winform和webform里面的下拉选项. 首先我们先建立一个新的项目,命名为SpinnerExample. 然后在Layout ...

  3. 面向组合子设计Coder

    面向组合子 面向组合子(Combanitor-Oriented),是最近帮我打开新世界大门的一种pattern.缘起haskell,又见monad与ParseC,终于ajoo前辈的几篇文章. 自去年9 ...

  4. .NET Web的身份认证

    百度一下”asp.net身份认证“,你会得到很多相关的资料,这些资料通常上来就会介绍诸如”Form认证“”Windows认证“等内容,而没有给出一个完整的流程.初学者对此往往一头雾水,我也曾经被坑过很 ...

  5. windows phone如何才能在中国翻身?

    最近的新闻告诉我们,Android和IOS的系统继续保持市场领先,并且Android的市场份额达到了历史最高点. 做为windows phone的消费者,作为微软粉丝,我感到十分的不爽. 前几天MIU ...

  6. Entity Framework 6 Recipes 2nd Edition(9-3)译->找出Web API中发生了什么变化

    9-3. 找出Web API中发生了什么变化 问题 想通过基于REST的Web API服务对数据库进行插入,删除和修改对象图,而不必为每个实体类编写单独的更新方法. 此外, 用EF6的Code Fri ...

  7. 错误: 从内部类中访问本 地变量vvv; 需要被声明为最终类型

    从github 下载了源码, 进行编译, 出现了下面的错误 E:\downloads\ff\elasticsearch-master\elasticsearch-master>GRADLE :b ...

  8. Jquary入门(添加 修改 表单元素)+ JSON+弹框

    字符串拼接 计算机语言 都是 对  数据的处理(获取/修改数据)  添加元素  除了  固定的方法添加 以外 都是   字符串拼接(拼接成固定格式即可执行). 1.表单添加元素  append() 方 ...

  9. 【原】SDWebImage源码阅读(三)

    [原]SDWebImage源码阅读(三) 本文转载请注明出处 —— polobymulberry-博客园 1.SDWebImageDownloader中的downloadImageWithURL 我们 ...

  10. Hawk 2. 软件界面介绍

    2. 软件界面介绍 1. 基本组件 Hawk采用类似Visual Studio和Eclipse的Dock风格,所有的组件都可以悬停和切换.包括以下核心组件: 左上角区域:主要工作区,任务管理. 下方: ...