cronolog安装配置

http://cronolog.org/

cronolog是一个比较不错的开源日志精细分割工具,这里简单介绍一下。更多详情请参考官方帮助文档。

以cronolog-1.6.2为例

一.下载:
wget http://cronolog.org/download/cronolog-1.6.2.tar.gz

root@localhost:~#wget http://cronolog.org/download/cronolog-1.6.2.tar.gz
--2014-10-13 11:44:08--  http://cronolog.org/download/cronolog-1.6.2.tar.gz
Resolving cronolog.org... 85.119.82.138, 80.77.248.26
Connecting to cronolog.org|85.119.82.138|:80... failed: Connection refused.
Connecting to cronolog.org|80.77.248.26|:80... connected.
HTTP request sent, awaiting response... 200 OK
Length: 133591 (130K) [application/x-gzip]
Saving to: “cronolog-1.6.2.tar.gz”

100%[======================================>] 133,591      116K/s   in 1.1s   

2014-10-13 11:44:10 (116 KB/s) - “cronolog-1.6.2.tar.gz” saved [133591/133591]


二.安装

yum -y install gcc gcc-c++  cmake automake autoconf  #编译时请先安装必备的编译工具包

[root@localhost ~]# tar -zxvf cronolog-1.6.2.tar.gz -C /usr/local/src/
[root@localhost ~]# cd /usr/local/src/cronolog-1.6.2/
[root@localhost cronolog-1.6.2]# ./configure && make && make install
[root@localhost ~]# crono
cronolog    cronosplit
安装完成后会生成两个命令cronolog cronosplit


三.使用

以centos6.5 x64下的apache为例:/etc/httpd/conf/httpd.conf
示例:把错误日志格式及存放位置通过cronolog加以自定义,centos6标准的apache配置大约在484行
 478 # ErrorLog: The location of the error log file.
 479 # If you do not specify an ErrorLog directive within a
 480 # container, error messages relating to that virtual host will be
 481 # logged here.  If you *do* define an error logfile for a
 482 # container, that host's errors will be logged there and not here.
 483 #
 484 ErrorLog logs/error_log

ErrorLog "|/usr/local/sbin/cronolog /var/log/httpd/%Y/%m/%d/error_log-%X.log" combined




以下是截取的官方说明:

Installation

Cronolog uses GNU autoconf, so it is configured and built with the standard sequence:

./configure
make

To install type "make install" or simply copy the executable "src/cronolog" to a suitable directory.

Cronolog has a number of options that can be set either by including in CFLAGS when configuring, or by editing the file "src/config.h":

  

-DFILE_MODE=octal-number    mode used for creating files (default is 0664)
-DDIR_MODE=octal-number mode used for creating directories (default is 0775)
-DDONT_CREATE_SUBDIRS don't include code to create missing directories
-DNEED_GETOPT_DEFS if your platform doesn't declare getopt()
e.g. to set the file mode to 0600:
CFLAGS="-O2 -DFILE_MODE=0600" ./configure

cronolog features

cronolog is a simple filter program that reads log file entries from standard input and writes each entry to the output file specified by a filename template and the current date and time. When the expanded filename changes, the current file is closed and a new one opened. cronolog is intended to be used in conjunction with a Web server, such as Apache, to split the access log into daily or monthly logs. For example the Apache configuration directives:
TransferLog "|/usr/sbin/cronolog /web/logs/%Y/%m/%d/access.log"

ErrorLog "|/usr/sbin/cronolog /web/logs/%Y/%m/%d/errors.log"
would instruct Apache to pipe its access and error log messages into separate copies of cronolog, which would create new log files each day in a directory hierarchy structured by date, i.e. on 31 December 2002 messages would be written to
/web/logs/2002/12/31/access.log
/web/logs/2002/12/31/errors.log
after midnight the files
/web/logs/2003/01/01/access.log
/web/logs/2003/01/01/errors.log
would be used, with the directories 2003, 2003/01 and 2003/01/01 being created if they did not already exist. More detail to come... Andrew Ford
2002-01-20

Cronolog usage

The cronolog package consists of two programs: cronolog and cronosplit. There is a manual page for each in PDF format (cronolog and cronosplit)

The cronolog program

The cronolog program is normally invoked as a piped log filter program from Apache as specified in the configuration file. The direct program usage is:
/path/to/cronolog [OPTIONS] logfile-spec
The logfile-spec is a template that describes the names of the log files that should be written. Each character in the template represents a character in the expanded filename, except for date and time format specifiers, which are replaced by their expansion. Format specifiers consist of a "%" followed by a character as described in the table below. However it would normally be used in an Apache CustomLog directive as so:
CustomLog "|/path/to/cronolog [OPTIONS] logfile-spec" [format]
Note that the entire cronolog command line is enclosed within quotes and preceded by a vertical bar ("|"). The quotes cause Apache to regard the command line as a single argument and the presence of the vertical bar tells Apache that this is a piped log and that the command line is passed to the shell.

cronolog options

Long form Short form Meaning
--hardlink=NAME -H NAME maintain a hard link from NAME to the current log file
--symlink=NAME -S NAME maintain a symbolic link from NAME to the current log file
--prev-symlink=NAME  -P NAME  maintain a symbolic link from NAME to previous log
--link=NAME -l NAME same as -S/--symlink
--help -h print a help message then exit
--period=PERIOD -p PERIOD  set the rotation period explicitly (new in 1.6.2)
--delay=DELAY   set the rotation period delay (new in 1.6.2 -- this will be renamed --rotation-offset with a short form of -o in 1.6.3)
--once-only   create single output log from template (not rotated)
--debug=FILE -x FILE write debug messages to FILE ( or to standard error if FILE is "-")
--american -a Interprete ambiguous start dates in American date formats (mm/dd/yy[yy])
--european -e Interprete ambiguous start dates in European date formats (dd/mm/yy[yy] - default)
--start-time=DT -s DT starting date and time (in ambiguous cases interpreted according to --american or --european specification)
--time-zone=TZ -z TZ use TZ for timezone
--version -V print version number, then exit

Template specifiers

Specifier Description
%% a literal % character
%n a new-line character
%t a horizontal tab character
Time fields
%H hour (00..23)
%I hour (01..12)
%p the locale's AM or PM indicator
%M minute (00..59)
%S second (00..61, which allows for leap seconds)
%X the locale's time representation (e.g.: "15:12:47")
%Z time zone (e.g. GMT), or nothing if the time zone cannot be determined
Date fields
%a the locale's abbreviated weekday name (e.g.: Sun..Sat)
%A the locale's full weekday name (e.g.: Sunday .. Saturday)
%b the locale's abbreviated month name (e.g.: Jan .. Dec)
%B the locale's full month name, (e.g.: January .. December)
%c the locale's date and time (e.g.: "Sun Dec 15 14:12:47 GMT 1996")
%d day of month (01 .. 31)
%j day of year (001 .. 366)
%m month (01 .. 12)
%U week of the year with Sunday as first day of week (00..53, where week 1 is the week containing the first Sunday of the year)
%W week of the year with Monday as first day of week (00..53, where week 1 is the week containing the first Monday of the year)
%w day of week (0 .. 6, where 0 corresponds to Sunday)
%x locale's date representation (e.g. today in Britain: "15/12/96")
%y year without the century (00 .. 99)
%Y year with the century (1970 .. 2038)

原文地址:https://www.cnblogs.com/lixuebin/p/10814495.html