小程序原生组件—提升你的小程序体验
1410
2022-09-25
日志分割工具——cronolog
日志分割工具——cronolog
1. 前言
本文将介绍一款日志分割软件cronolog。日志对于每位从事IT技术领域工作的人员来说都是相当重要的,对于系统管理员来说,系统日志、系统服务的日志以及应用软件的日志是他们每天都需要关注的,从日志中可以发现系统存在的问题以及一些危险的征兆等等;对于开发人员来说,应用软件日志、debug日志对于了解系统当时的环境、重演或模拟故障以及分析软件bug都是十分有用的。
然而一些软件本身的日志维护功能却很薄弱。其中最主要的表现就是将所有的信息都写到了同一文件中,而且又没有对其归档。这样给查看和分析日志文件带来很大不便。还有一些软件本身就没有日志功能,仅仅将信息输出到标准输出设备。为了解决这些软件先天上日志功能的不足,我们需要对日志做进一步的处理,具体来说就是分割,将其按我们需要的规格进行分割,以便日后的查看、分析、备份以及归档等。cronolog就是一款在这方面值得推崇的开源软件,本文将介绍该软件的安装以及使用,并列举几个实例。
2. cronolog的安装
cronolog软件是一个开源软件,可从其官方网站上获得源码,编译和安装。地址为[url]cronolog源码获得、配置以及安装
首先从[url]border="0" cellpadding="0" cellspacing="0" class="MsoNormalTable" style="margin: auto auto auto 26.7pt; border-collapse: collapse; mso-table-layout-alt: fixed; mso-padding-alt: 2.75pt 2.75pt 2.75pt 2.75pt">
configure配置,首先需进入cronolog解压目录。
# ./configure --prefix=/usr/local/cronolog |
make编译。
# make |
make install安装。
# make check
# make install |
进入/usr/local/cronolog,检查是否正确安装。
# cd /usr/local/cronolog/sbin
# ./cronolog -V
cronolog version 1.6.2 |
2.2. cronolog的使用方法
可以通过cronolog -h命令获得使用方法,但说明很简短并且没有例子。
# ./cronolog -h
usage: ./cronolog [OPTIONS] logfile-spec
-H NAME, --hardlink=NAME maintain a hard link from NAME to current log
-S NAME, --symlink=NAME maintain a symbolic link from NAME to current log
-P NAME, --prev-symlink=NAME maintain a symbolic link from NAME to previous log
-l NAME, --link=NAME same as -S/--symlink
-h, --help print this help, then exit
-p PERIOD, --period=PERIOD set the rotation period explicitly
-d DELAY, --delay=DELAY set the rotation period delay
-o, --once-only create single output log from template (not rotated)
-x FILE, --debug=FILE write debug messages to FILE
( or to standard error if FILE is "-")
-a, --american American date formats
-e, --european European date formats (default)
-s, --start-time=TIME starting time
-z TZ, --time-zone=TZ use TZ for timezone
-V, --version print version number, then exit |
当然也可以通过man cronolog查看帮助手册,说明很详细,而且有举例说明。不过需要将/usr/local/cronolog/man添加到MANPATH中。
# export MANPATH=$MANPATH:/usr/local/cronolog/man
# man cronolog
... ... |
3. cronolog使用实例
下面我们通过两个实例来具体了解一下其使用方法。
3.1. 配置apache的访问日志
修改apache的border="0" cellpadding="0" cellspacing="0" class="MsoNormalTable" style="margin: auto auto auto 26.7pt; border-collapse: collapse; mso-table-layout-alt: fixed; mso-padding-alt: 2.75pt 2.75pt 2.75pt 2.75pt">
为
LogFormat "%h %l %u %t \"%>s %b \"%{Referer}i\" \%{User-Agent}i\"" |
设置TransferLog命令
将
CustomLog /usr/local/apache/logs/access_log common
或是
CustomLog /usr/local/apache/logs/access_log combine |
修改为
TransferLog "|/usr/local/cronolog/sbin/cronolog /opt/hpws/apache/logs/%Y%m%daccess_log" |
其中
/usr/local/cronolog/sbin/cronolog 为cronolog安装后的路径。 |
/opt/hpws/apache/logs/ 为日志分割时候日志保存位置。 |
%Y%m%daccess_log 为日志文件的名称格式,每天一个文件。 |
3.2. 将某一简单应用软件的输出重定向为特定日志文件
对于一个简单的应用程序,一个shell脚本deploy.sh,该脚本需24小时不间断的在后台运行。具体执行命令如下,
# nohup ./deploy.sh >> ./log/deploy.log & |
将标准输出重定向到文件./log/deploy.log中。
日志文件只有一个,随着运行时间的推移,该文件会越来越大。
现使用cronolog工具处理一下日志,修改后的命令如下,
# nohup ./deploy.sh | /usr/local/cronolog/sbin/cronolog "./log/deploy.logdeploy_%Y%m%d.log" & |
日志文件将按天分割,每天产生一个新的日志文件。
版权声明:本文内容由网络用户投稿,版权归原作者所有,本站不拥有其著作权,亦不承担相应法律责任。如果您发现本站中有涉嫌抄袭或描述失实的内容,请联系我们jiasou666@gmail.com 处理,核实后本网站将在24小时内删除侵权内容。
发表评论
暂时没有评论,来抢沙发吧~