Linux上tomcat的日志输出在catalina.out里面,随着时间的推移,产生的日志文件会越来越大,其主要是调试中打印的一些信息占空间,比如说System.out和log等等。tomcat 的catalina.out文件的不断扩大,导致系统磁盘空间边变小,也不方便查看,所以使用cronolog按日期分割日志(例子里面以天为分割单位)。
  • cronolog安装

  1. # tar zxvf cronolog-1.6..tar.gz
    # cd cronolog-1.6.
    # ./configure
    # make
    # make install
  • 查看cronolog安装后所在目录(验证安装是否成功)

    # which cronolog

    正常情况下显示:

    /usr/local/sbin/cronolog

  • 要想分割tomcat的catalina.out,需作如下工作:

    Tomcat7以前的版本:

    (1)注释掉(#)

    touch “$CATALINA_BASE”/logs/catalina.out

    (2)修改tomcat bin目录下的catalina.sh文件中的两处

    org.apache.catalina.startup.Bootstrap “$@” start  \

    >> “$CATALINA_BASE”/logs/catalina.out 2>&1 &

    org.apache.catalina.startup.Bootstrap "$@" start  2>&1 \

    | /usr/local/sbin/cronolog "$CATALINA_BASE"/logs/catalina.%Y-%m-%d.out >> /dev/null &

  • 完成之后重起Tomcat就可以看到logs文件中存在catalina.out.2015-09-13样式的日志。
  • Tomcat7以后的版本:
    1  第一步

    if [ -z "$CATALINA_OUT" ] ; then

    CATALINA_OUT="$CATALINA_BASE"/logs/catalina.out

    fi

    修改为

    if [ -z "$CATALINA_OUT" ] ; then

    CATALINA_OUT="$CATALINA_BASE"/logs/catalina.%Y-%m-%d.out

    fi

  • 2  第二步

    touch "$CATALINA_OUT"

    改为

    #touch "$CATALINA_OUT"

  • 3  第三步

    org.apache.catalina.startup.Bootstrap "$@" start \

    >> "$CATALINA_OUT"   2>&1 &

    修改为

    org.apache.catalina.startup.Bootstrap "$@" start 2>&1 \

    | /usr/local/sbin/cronolog "$CATALINA_OUT" >> /dev/null &

  • 或者进行下面的操作步骤效果一样(推荐):

# vi bin/catalina.sh

找到下面这行

org.apache.catalina.startup.Bootstrap "$@" start \
      >> "$CATALINA_OUT" 2>&1 &

类似这样的行有2处,第一处是tomcat时带“-security”参数的启动,第二处是默认tomcat启动方式,也就是else下面的那部分,我们只修改这里。

另外还要把touch “$CATALINA_OUT"这行注释掉。

完整的修改如下:
  #touch "$CATALINA_OUT"
  if [ "$1" = "-security" ] ; then
     ........
  else
eval "\"$_RUNJAVA\"" "\"$LOGGING_CONFIG\"" $LOGGING_MANAGER $JAVA_OPTS $CATALINA_OPTS \
-Djava.endorsed.dirs="\"$JAVA_ENDORSED_DIRS\"" -classpath "\"$CLASSPATH\"" \
-Dcatalina.base="\"$CATALINA_BASE\"" \
-Dcatalina.home="\"$CATALINA_HOME\"" 
-Djava.io.tmpdir="\"$CATALINA_TMPDIR\"" \
  org.apache.catalina.startup.Bootstrap "$@" start 2>&1 \
| /usr/local/sbin/cronolog "$CATALINA_BASE"/logs/catalina.%Y-%m-%d.out >>/dev/null &
fi

完成之后重起Tomcat就可以看到logs文件中存在catalina.out.2015-09-13样式的日志。

cronolog分割Tomcat catalina.out日志的更多相关文章

  1. Cronolog 分割 Tomcat8 Catalina.out日志 (转)

    默认情况下,tomcat的catalina.out日志文件是没有像其它日志一样,按日期进行分割,而是全部输出全部写入到一个catalina.out,这样日积月累就会造成.out日志越来越大,给管理造成 ...

  2. cronlog分割tomcat catalina.out日志

    Tomcat 下日志文件 catalina.out 过大,几百兆或几个G,进而造成再也无法写入更多的日志内容,至使 Tomcat 无法处理请求,所以依靠cronlog来分割: 具体步骤如下: 1.安装 ...

  3. Tomcat catalina.out日志使用log4j按天分割

    由于tomcat catalina.out日志不会自动分割, 一.日志分割所需包在附近中 1. 压缩包中有三个jar包: log4j-1.2.16.jar tomcat-juli-adapters.j ...

  4. 日志切割工具logrotate解决Tomcat catalina.out日志过大的问题

    一.介绍日志切割logrotate 对于Linux系统安全来说,日志文件是极其重要的工具.不知为何,我发现很多运维同学的服务器上都运行着一些诸如每天切分Nginx日志之类的CRON脚本,大家似乎遗忘了 ...

  5. tomcat catalina.out日志切割(logrotate)

    简单说明: 1,因为tomcat日志会一直往catalina.out里面输出,所以回到值catalina.out非常大,占用磁盘空间 2,日志非常大,查看日志就需要很长时间. 3,据说catalina ...

  6. cronolog分割tomcat日志文件

    tomcat日志备份磁盘压力解决方案,使用cronolog每日生成文件uat部署操作如下,,观察两天,下周一部署生产message系统,后续根据需求部署到其它业务线 示例方案:uat—message0 ...

  7. cronolog 对 tomcat 7 进行日志切割

    一.安装 软件 cronolog-1.6.2.tar.gz tar zxvf cronolog-1.6.2.tar.gz cd cronolog-1.6.2 ./configure && ...

  8. 使用cronolog切割tomcat catalina.out文件

    今天查看之前配置的tomcat发现catalina.out文件已经增大到接近5G,过不了多久就会将所在分区撑爆. 搜集了一下,大部分都使用cronolog切割catalina.out文件.按照这个方式 ...

  9. linux 下tomcat catalina.out日志操作

    1. 查看日志 tail -f catalina.out 会动态打印日志. 2. 查看所有日志 less -f catalina.out 打开所有日志后,默认是显示第一页,常用命令用到如下: G:到达 ...

随机推荐

  1. SOAPUI使用教程-REST服务和WADL

    首先创建一个新的REST项目: 选择文件|新建项目REST从主菜单: 通常情况下,我们可能会只提供一个URI 点击导入消耗. 在新建项目消耗对话框: 点击浏览. 然后,我们可以浏览到该文件: 点击   ...

  2. jQuery的选择器中的通配符

    (1)通配符: $("input[id^='code']");//id属性以code开始的所有input标签 $("input[id$='code']");// ...

  3. android 常用URI

    关于联系人的一些URI: 管理联系人的Uri: ContactsContract.Contacts.CONTENT_URI 管理联系人的电话的Uri: ContactsContract.CommonD ...

  4. $(function(){}) 与(function(){})()在执行时的优先级

    $(function(){}) 是在页面DOM元素加载完成后执行,这时页面中的DOM对象都可以找到; (function(){})()是匿名函数,按页面从上到下顺序,执行到它时才执行,这时可能有的在此 ...

  5. 【java基础学习】-【泛型】

    参考以下几位同学的总结来学习: http://www.cnblogs.com/lwbqqyumidi/p/3837629.html#!comments http://www.weixueyuan.ne ...

  6. 初探javascript

    javascript是一种在网络广泛应用的脚本语言,虽然名字与java相近,但其实两者并没有直接的关系,脚本语言是一种为了便于操作和拓展功能而开发出来的解释性语言,不同于传统的编程语言,脚本语言不需要 ...

  7. angular学习之路(一)

    angular是什么? angular是一个用于设计动态web应用的结构框架! 它不仅仅是一个JavaScript框架,他的核心其实是对HTML标签的增强. 何为HTML标签的增强?其实就是使用标签完 ...

  8. jvm的内存分配总结

    最近看了周志明版本的<深入理解Java虚拟机>第一版和第二版,写的很好,收获很多,此处总结一下.   jvm中内存划分:   如上图,一共分为五块,其中: 线程共享区域为: 1.java堆 ...

  9. 广州PostgreSQL用户会技术交流会小记 2015-9-19

    广州PostgreSQL用户会技术交流会小记 2015-9-19 今天去了广州PostgreSQL用户会组织的技术交流会 分别有两个session 第一个讲师介绍了他公司使用PostgreSQL-X2 ...

  10. BrnShop mvc3升级mvc4

    此文来自:http://www.cnblogs.com/fumj/p/3588517.html 手工升级ASP.NET MVC 3项目: 一.安装ASP.NET MVC 4 二.升级ASP.NET M ...