您的位置:首页 > 运维架构 > Tomcat

cronolog切割tomcat的catalina.out日志

2017-11-14 11:23 260 查看
Linux下运行的Web服务器Apache,默认日志文件是不分割的,一个整文件既不易于管理,也不易于分析统计。
安装cronolog后,可以将日志文件按时间分割,易于管理和分析。
补充:apache自带的日志分割工具rotatelogs,据专家说在进行日志切割时容易丢日志,所以这里我们就用cronolog来做日志切割
cronolog简介
Welcometocronolog.org,
thehomeofthecronologweblogrotationprogram.cronologisasimplefilterprogram
thatreadslogfileentriesfromstandardinputandwriteseachentrytotheoutputfilespecified
byafilenametemplateandthecurrentdateandtime.
Whentheexpandedfilenamechanges,thecurrentfileisclosedandanewoneopened.
cronologisintendedtobeusedinconjunctionwithaWebserver,
suchasApache,tosplittheaccesslogintodailyormonthlylogs.
cronolog是一个简单的过滤程序,读取日志文件条目从标准输入和输出的每个条目并写入指定的日志文件的文件名模板和当前的日期和时间。
当扩展文件名的变化,目前的文件是关闭,新开辟的。
cronolog旨在和一个Web服务器一起使用,如Apache,分割访问日志为每天或每月的日志。
cronolog特点cronolog主要和Web服务器配置使用,特别是Apache服务器,Apache默认日志文件是不分割的,一个整文件既不易于管理,也不易于分析统计。安装cronolog后,可以将日志文件按时间分割,易于管理和分析。cronolog 安装
下载
#cronolog-1.6.2.tar.gz
2、解压缩
#tarzxvfcronolog-1.6.2.tar.gz
3、进入cronolog安装文件所在目录
#cdcronolog-1.6.2
4、运行安装[进入文件夹,使用./configure命令进行编译,可以加--prefix指定安装目录]
#./configure[如:/configure--prefix=/usr/local/cronolog]
#make
#makeinstall
5、查看cronolog安装后所在目录(验证安装是否成功)
#whichcronolog
一般情况下显示为:/usr/local/sbin/cronolog
cronolog 应用【配置tomcat】找到tomcat中bin目录下的catalina.sh 文件 
1.查找
if[-z"$CATALINA_OUT"];then
CATALINA_OUT="$CATALINA_BASE"/logs/catalina.out
fi
修改为
if[-z"$CATALINA_OUT"];thenCATALINA_OUT="$CATALINA_BASE"/logs/catalina.%Y-%m-%d.outfi
2.查找touch"$CATALINA_OUT"
注释掉
#touch"$CATALINA_OUT"
 
3.查找"$CATALINA_OUT"2>&1"&"
有两处..
org.apache.catalina.startup.Bootstrap"$@"start\
>>"$CATALINA_OUT"2>&1"&"
都修改为:[第一种方式:已经进行第一个步骤]
org.apache.catalina.startup.Bootstrap"$@"start2>&1\
|/usr/local/sbin/cronolog"$CATALINA_OUT">>/dev/null&
都修改为:[第二种方式:没有进行第一个步骤]
org.apache.catalina.startup.Bootstrap"$@"start2>&1\
|/usr/local/sbin/cronolog"$CATALINA_BASE"/logs/catalina.%Y-%m-%d.out>>/dev/null&
以上的“/usr/local/sbin/cronolog”配置的是cronolog的安装目录,这里要根据你的cronolog安装目录进行配置。配置完成之后,重启tomcat就可以了。重启访问应用之后就会发现,Catalina.out不会再输出日志,日志会输入到一个catalina.日期.out的文件中注意:
org.apache.catalina.startup.Bootstrap“$@”start\
>>“$CATALINA_BASE”/logs/catalina.out2>&1&
请注意,修改后把这两行删掉,而不是注释,否则java会报Usage参数错误并且在你查看logs目录下生成的日志会发现报错:
/usr/local/tomcat0/bin/catalina.sh:line396:org.apache.catalina.startup.Bootstrap:commandnotfound
修改成:
org.apache.catalina.startup.Bootstrap"$@"start2>&1\
|/usr/local/sbin/cronolog"$CATALINA_BASE"/logs/catalina.%Y-%m-%d.log>>/dev/null&
请注意,连接符\后不能留空格,否则会报
“/usr/local/tomcat0/bin/catalina.sh:line395:syntaxerrornearunexpectedtoken`|'
/usr/local/tomcat0/bin/catalina.sh:line395:`|/usr/local/sbin/cronolog"$CATALINA_BASE"/logs/all.%Y-%m-%d.log>>/dev/null&'”错误。
cronolog 使用基本使用
[root@node6~]#cronolog-h
usage:cronolog[OPTIONS]logfile-spec
-HNAME,--hardlink=NAMEmaintainahardlinkfromNAMEtocurrentlog
-SNAME,--symlink=NAMEmaintainasymboliclinkfromNAMEtocurrentlog
-PNAME,--prev-symlink=NAMEmaintainasymboliclinkfromNAMEtopreviouslog
-lNAME,--link=NAMEsameas-S/--symlink
-h,--helpprintthishelp,thenexit
-pPERIOD,--period=PERIODsettherotationperiodexplicitly
-dDELAY,--delay=DELAYsettherotationperioddelay
-o,--once-onlycreatesingleoutputlogfromtemplate(notrotated)
-xFILE,--debug=FILEwritedebugmessagestoFILE
(ortostandarderrorifFILEis"-")
-a,--americanAmericandateformats
-e,--europeanEuropeandateformats(default)
-s,--start-time=TIMEstartingtime
-zTZ,--time-zone=TZuseTZfortimezone
-V,--versionprintversionnumber,thenexit
cronolog一般是采取管道的方式来工作的,采用如下的形式:
[root@node6~]#loggenerator|cronologlog_file_pattern
其中,loggenerator为产生log的程序,而log_file_pattern是日志文件的路径,可以在其中加入cronolog所支持的时间相关的pattern字符,如/www/log/%y/%m/%d/access.log。其pattern为%字符后跟一特殊字符,简述如下:转义符: 
%%字符
n换行
t水平制表符
时间域: 
H小时(00..23)
I小时(01..12)
p该locale下的AM或PM标识
M分钟(00..59)
S秒(00..61,whichallowsforleapseconds)
X该locale下时间表示符(e.g.:"15:12:47")
Z时区。若时区不能确定,则无意义
日期域: 
a该locale下的工作日简名(e.g.:Sun..Sat)
A该locale下的工作日全名(e.g.:Sunday..Satur-ay)
b该locale下的月份简称(e.g.:Jan..Dec)
B该locale下的月份全称(e.g.:January..December)
c该locale下的日期和时间(e.g.:"SunDec1514:12:47GMT1996")
d当月中的天数(01..31)
j当年中的天数(001..366)
m月数(01..12)
U当年中的星期数,以周日作为一周开始,其中第一周为首个含星期天的星期(00..53)
W当年中的星期数,以星期一作为一周的开始,其中第一周为首个含星期天的星期(00..53)
w工作日数(0..6,0表示星期天)
x该locale下的日期表示(e.g."13/04/97")
y两位数的年份(00..99)
Y四位数的年份(1970..2038)
参考来源: http://freeloda.blog.51cto.com/2033581/1346076/参考来源:http://blog.sina.com.cn/s/blog_e5cbae8e0102vmqv.html
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: