tomcat都是按日保存日志文问分割
来源:互联网 发布:哪个银行的淘宝卡最好 编辑:程序博客网 时间:2024/05/16 01:30
转:http://tanrishou.blog.163.com/blog/static/1502502009924112045630/
一、本文基于的环境:
操作系统:Linux(redhat)、Windows(XP、2003)
JDK版本:j2sdk1.4.2_04
Tomcat版本:tomcat-5.0.28
Cronolog版本:cronolog-1.6.2.tar.gz
本文修改后的tomcat都是按日保存日志文件,文件格式如:catalina.2009-06-07.out
二、cronolog的简介(下载cronolog)
Cronolog是一款日志轮循(rotation)工具,可以用它来把Apache、Tomcat等Web服务器上输出的日志切分成按日或月保存的文件。
Cronolog从标准输入中读取日志内容,然后把它们写到按指定格式命名的日志文件中。日志文件的名称可以加入一段日期标记(如Catalina.2009-06-07.out),当日期改变后Cronolog会把之前的日志文件关闭,再打开一个包含新日期的日志文件(如Catalina.2009-06-08.out)。
利用Cronolog可以完美解决tomcat中的catalina.out日志文件不断增大,且不能在tomcat运行期间删除的问题。
需要注意的一个问题是,日期改变后cronolog并不是马上切换日志文件,而是需要有新的日志输出才能触发cronolog切换日志文件。所以如果你想在2009-06-08删除2009-06-07的日志文件,如果从2009-06-08的00:00开始到你执行删除时都没有日志输出,则2009-06-07的日志文件可能仍然被占用着,导致删除失败。
三、Linux下使用Cronolog轮循(rotating)Tomcat日志
(1)首先安装cronolog(cronolog-1.6.2.tar.gz放于/opt下)
cd /opt
gzip –d cronolog-1.6.2.tar.gz
tar –xvf cronolog-1.6.2.tar
cd cronolog-1.6.2
./configure --prefix=/usr/local/cronolog //按自己需要指定安装路径,或不指定
make
make install
先停止tomcat服务,然后修改以下文件:
%CATALINA_HOME%/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/cronolog/sbin/cronolog "$CATALINA_BASE"/logs/catalina.%Y-%m-%d.out >> /dev/null &
另外删除行:
touch "$CATALINA_BASE"/logs/catalina.out
修改完毕后重新启动tomcat服务。
四、Windows下使用Cronolog轮循(rotating)Tomcat日志
(1)安装cronolog
解压cronolog-1.6.1-win32.zip,将cronolog.exe文件拷贝到Tomcat的bin目录下。
(2)修改Tomcat配置
在Windows下,tomcat默认是把日志内容直接输出到控制台的,而不是保存在catalina.out文件,所以要先修改为把日志内容输出到文件。
首先修改%CATALINA_HOME%/bin/startup.bat,将
call "%EXECUTABLE%" start %CMD_LINE_ARGS%
替换为:
call "%EXECUTABLE%" run %CMD_LINE_ARGS%
然后修改%CATALINA_HOME%/bin/catalina.bat,将
rem Execute Java with the applicable properties
if not "%JPDA%" == "" goto doJpda
if not "%SECURITY_POLICY_FILE%" == "" goto doSecurity
%_EXECJAVA% %JAVA_OPTS% %CATALINA_OPTS% %DEBUG_OPTS% -Djava.endorsed.dirs="%JAVA_ENDORSED_DIRS%" -classpath "%CLASSPATH%" -Dcatalina.base="%CATALINA_BASE%" -Dcatalina.home="%CATALINA_HOME%" -Djava.io.tmpdir="%CATALINA_TMPDIR%" %MAINCLASS% %CMD_LINE_ARGS% %ACT
goto end
:doSecurity
%_EXECJAVA% %JAVA_OPTS% %CATALINA_OPTS% %DEBUG_OPTS% -Djava.endorsed.dirs="%JAVA_ENDORSED_DIRS%" -classpath "%CLASSPATH%" -Djava.security.manager -Djava.security.policy=="%SECURITY_POLICY_FILE%" -Dcatalina.base="%CATALINA_BASE%" -Dcatalina.home="%CATALINA_HOME%" -Djava.io.tmpdir="%CATALINA_TMPDIR%" %MAINCLASS% %CMD_LINE_ARGS% %ACT
goto end
:doJpda
if not "%SECURITY_POLICY_FILE%" == "" goto doSecurityJpda
%_EXECJAVA% %JAVA_OPTS% %CATALINA_OPTS% -Xdebug -Xrunjdwp:transport=%JPDA_TRANSPORT%,address=%JPDA_ADDRESS%,server=y,suspend=n %DEBUG_OPTS% -Djava.endorsed.dirs="%JAVA_ENDORSED_DIRS%" -classpath "%CLASSPATH%" -Dcatalina.base="%CATALINA_BASE%" -Dcatalina.home="%CATALINA_HOME%" -Djava.io.tmpdir="%CATALINA_TMPDIR%" %MAINCLASS% %CMD_LINE_ARGS% %ACT
goto end
:doSecurityJpda
%_EXECJAVA% %JAVA_OPTS% %CATALINA_OPTS% -Xdebug -Xrunjdwp:transport=%JPDA_TRANSPORT%,address=%JPDA_ADDRESS%,server=y,suspend=n %DEBUG_OPTS% -Djava.endorsed.dirs="%JAVA_ENDORSED_DIRS%" -classpath "%CLASSPATH%" -Djava.security.manager -Djava.security.policy=="%SECURITY_POLICY_FILE%" -Dcatalina.base="%CATALINA_BASE%" -Dcatalina.home="%CATALINA_HOME%" -Djava.io.tmpdir="%CATALINA_TMPDIR%" %MAINCLASS% %CMD_LINE_ARGS% %ACT
goto end
替换为:
rem Execute Java with the applicable properties
if not "%JPDA%" == "" goto doJpda
if not "%SECURITY_POLICY_FILE%" == "" goto doSecurity
%_EXECJAVA% %JAVA_OPTS% %CATALINA_OPTS% %DEBUG_OPTS% -Djava.endorsed.dirs="%JAVA_ENDORSED_DIRS%" -classpath "%CLASSPATH%" -Dcatalina.base="%CATALINA_BASE%" -Dcatalina.home="%CATALINA_HOME%" -Djava.io.tmpdir="%CATALINA_TMPDIR%" %MAINCLASS% %CMD_LINE_ARGS% %ACT
goto end
:doSecurity
%_EXECJAVA% %JAVA_OPTS% %CATALINA_OPTS% %DEBUG_OPTS% -Djava.endorsed.dirs="%JAVA_ENDORSED_DIRS%" -classpath "%CLASSPATH%" -Djava.security.manager -Djava.security.policy=="%SECURITY_POLICY_FILE%" -Dcatalina.base="%CATALINA_BASE%" -Dcatalina.home="%CATALINA_HOME%" -Djava.io.tmpdir="%CATALINA_TMPDIR%" %MAINCLASS% %CMD_LINE_ARGS% %ACT
goto end
:doJpda
if not "%SECURITY_POLICY_FILE%" == "" goto doSecurityJpda
%_EXECJAVA% %JAVA_OPTS% %CATALINA_OPTS% -Xdebug -Xrunjdwp:transport=%JPDA_TRANSPORT%,address=%JPDA_ADDRESS%,server=y,suspend=n %DEBUG_OPTS% -Djava.endorsed.dirs="%JAVA_ENDORSED_DIRS%" -classpath "%CLASSPATH%" -Dcatalina.base="%CATALINA_BASE%" -Dcatalina.home="%CATALINA_HOME%" -Djava.io.tmpdir="%CATALINA_TMPDIR%" %MAINCLASS% %CMD_LINE_ARGS% %ACT
goto end
:doSecurityJpda
%_EXECJAVA% %JAVA_OPTS% %CATALINA_OPTS% -Xdebug -Xrunjdwp:transport=%JPDA_TRANSPORT%,address=%JPDA_ADDRESS%,server=y,suspend=n %DEBUG_OPTS% -Djava.endorsed.dirs="%JAVA_ENDORSED_DIRS%" -classpath "%CLASSPATH%" -Djava.security.manager -Djava.security.policy=="%SECURITY_POLICY_FILE%" -Dcatalina.base="%CATALINA_BASE%" -Dcatalina.home="%CATALINA_HOME%" -Djava.io.tmpdir="%CATALINA_TMPDIR%" %MAINCLASS% %CMD_LINE_ARGS% %ACT
goto end
用于Windows环境的补充(2009-06-13):
Configuration for use with NT service:
TransferLog "|c:/apache/bin/convlog.exe c:/apache/logs/access%Y%m%d.log"
Configuration for use from command line:
TransferLog "|c:/apache/bin/convlog.exe c:/apache/logs/access%%Y%%m%%d.log"
- tomcat都是按日保存日志文问分割
- tomcat日志catalina.out按日期分割
- tomcat下log4j接管日志并按日期分割
- maillog 日志 切割 按日 分割
- apache 日志按日期分割
- Linux环境下tomcat的catalina.out日志按日分割生成实现
- 用cronolog-1.6.2 将Tomcat catalina.out日志按日分割
- 使用cronolog按日期分割日志
- apache日志按日期进行分割
- 使用cronolog按日期分割日志
- tomcat catalina.out日志按日切割
- tomcat日志分割
- Tomcat生成日志分割
- tomcat日志自动分割
- tomcat 日志分割
- tomcat日志分割
- Tomcat 日志分割.
- tomcat日志分割
- 移动端web页面知识小结之像素、物理像素、逻辑像素
- 我的男女偶像:莱昂纳多和林青霞
- Qt学习之路(35): Qt容器类之顺序存储容器
- zigbee智能家居系统转载文章
- 语文游戏项目涉及到的几个需求的解决方法
- tomcat都是按日保存日志文问分割
- iOS 懒加载模式
- Linux系统安装openssl扩展
- 线程池的简单介绍
- 双向认证第二步: p.12文件进行ssl双向认证
- 荒野之鹰
- eclipse生成的java项目中.settings的介绍
- MySQL 添加列,修改列,删除列
- 多通道图像的通道分享和合成函数-split、merge