zoukankan      html  css  js  c++  java
  • 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)

  • 相关阅读:
    Ubuntu 14.04 配置iptables防火墙
    转 微软Sysinternals Suite工具13年12月版下载
    转详解Zoosk千万用户实时通信背后的开源技术
    Where is Silverlight now?
    A glance at C# vNext
    silverlight 进行本地串口调用的一种可行的解决方法 之silverlight端代码
    silverlight 进行本地串口调用的一种可行的解决方法
    silverlight 中javascript 代码与托管代码的互调用 以及一些思考
    使用cglib动态创建javabean
    数据库同步核心代码
  • 原文地址:https://www.cnblogs.com/lixuebin/p/10814495.html
Copyright © 2011-2022 走看看