使用
cronolog可以格式化日志文件的格式,比如按時(shí)間分割,易于管理和分析。
cronolog的安裝配置非常簡(jiǎn)單,簡(jiǎn)要說(shuō)明如下:
1.下載軟件
http://cronolog.org/download/index.html2.解壓縮
gzip -d cronolog-1.6.2.tar.gz
tar xf cronolog-1.6.2.tar
2.進(jìn)入相應的目錄 ./configure
3.make
4.make install
5.修改apache配置文件
以下是我的安裝日志,供大家參考:
[root@eygle opt]# wget http://cronolog.org/download/cronolog-1.6.2.tar.gz --08:05:12-- http://cronolog.org/download/cronolog-1.6.2.tar.gz => `cronolog-1.6.2.tar.gz‘ Resolving cronolog.org... done. Connecting to cronolog.org[217.160.212.212]:80... connected. HTTP request sent, awaiting response... 200 OK Length: 133,591 [application/x-gzip] 100%[==================================>] 133,591 26.23K/s ETA 00:00 08:05:19 (26.23 KB/s) - `cronolog-1.6.2.tar.gz‘ saved [133591/133591] [root@eygle opt]# gzip -d cronolog-1.6.2.tar.gz [root@eygle opt]# tar xf cronolog-1.6.2.tar [root@eygle opt]# cd cronolog-1.6.2 [root@eygle cronolog-1.6.2]# ls aclocal.m4 config.cache configure cronolog.spec install-sh Makefile.am mkinstalldirs src AUTHORS config.log configure.in doc lib Makefile.in NEWS testsuite ChangeLog config.status COPYING INSTALL Makefile missing README TODO [root@eygle cronolog-1.6.2]# ./configure loading cache ./config.cache checking for a BSD compatible install... (cached) /usr/bin/install -c checking whether build environment is sane... yes checking whether make sets ${MAKE}... (cached) yes checking for working aclocal... found checking for working autoconf... found checking for working automake... found checking for working autoheader... found checking for working makeinfo... found checking for gcc... (cached) gcc checking whether the C compiler (gcc ) works... yes checking whether the C compiler (gcc ) is a cross-compiler... no checking whether we are using GNU C... (cached) yes checking whether gcc accepts -g... (cached) yes checking for a BSD compatible install... /usr/bin/install -c checking whether ln -s works... (cached) yes checking for ranlib... (cached) ranlib checking for perl... (cached) /usr/bin/perl checking how to run the C preprocessor... (cached) gcc -E checking for ANSI C header files... (cached) yes checking whether stat file-mode macros are broken... (cached) no checking whether time.h and sys/time.h may both be included... (cached) yes checking whether struct tm is in sys/time.h or time.h... (cached) time.h checking for tm_zone in struct tm... (cached) yes checking for fcntl.h... (cached) yes checking for limits.h... (cached) yes checking for unistd.h... (cached) yes checking for working const... (cached) yes checking for size_t... (cached) yes checking whether struct tm is in sys/time.h or time.h... (cached) time.h checking for strftime... (cached) yes checking for vprintf... (cached) yes checking for mkdir... (cached) yes checking for mktime... (cached) yes checking for putenv... (cached) yes checking for strptime... (cached) yes checking for localtime_r... (cached) yes creating ./config.status creating Makefile creating lib/Makefile creating src/Makefile creating doc/Makefile creating testsuite/Makefile creating src/cronosplit [root@eygle cronolog-1.6.2]# make Making all in lib make[1]: Entering directory `/opt/cronolog-1.6.2/lib‘ make[1]: Nothing to be done for `all‘. make[1]: Leaving directory `/opt/cronolog-1.6.2/lib‘ Making all in src make[1]: Entering directory `/opt/cronolog-1.6.2/src‘ make[1]: Nothing to be done for `all‘. make[1]: Leaving directory `/opt/cronolog-1.6.2/src‘ Making all in doc make[1]: Entering directory `/opt/cronolog-1.6.2/doc‘ make[1]: Nothing to be done for `all‘. make[1]: Leaving directory `/opt/cronolog-1.6.2/doc‘ Making all in testsuite make[1]: Entering directory `/opt/cronolog-1.6.2/testsuite‘ make[1]: Nothing to be done for `all‘. make[1]: Leaving directory `/opt/cronolog-1.6.2/testsuite‘ make[1]: Entering directory `/opt/cronolog-1.6.2‘ make[1]: Nothing to be done for `all-am‘. make[1]: Leaving directory `/opt/cronolog-1.6.2‘ [root@eygle cronolog-1.6.2]# make install Making install in lib make[1]: Entering directory `/opt/cronolog-1.6.2/lib‘ make[2]: Entering directory `/opt/cronolog-1.6.2/lib‘ make[2]: Nothing to be done for `install-exec-am‘. make[2]: Nothing to be done for `install-data-am‘. make[2]: Leaving directory `/opt/cronolog-1.6.2/lib‘ make[1]: Leaving directory `/opt/cronolog-1.6.2/lib‘ Making install in src make[1]: Entering directory `/opt/cronolog-1.6.2/src‘ make[2]: Entering directory `/opt/cronolog-1.6.2/src‘ /bin/sh ../mkinstalldirs /usr/local/sbin /usr/bin/install -c cronolog /usr/local/sbin/cronolog /bin/sh ../mkinstalldirs /usr/local/sbin /usr/bin/install -c cronosplit /usr/local/sbin/cronosplit make[2]: Nothing to be done for `install-data-am‘. make[2]: Leaving directory `/opt/cronolog-1.6.2/src‘ make[1]: Leaving directory `/opt/cronolog-1.6.2/src‘ Making install in doc make[1]: Entering directory `/opt/cronolog-1.6.2/doc‘ make[2]: Entering directory `/opt/cronolog-1.6.2/doc‘ make[2]: Nothing to be done for `install-exec-am‘. /bin/sh ../mkinstalldirs /usr/local/info /usr/bin/install -c -m 644 ./cronolog.info /usr/local/info/cronolog.info install-info --info-dir=/usr/local/info /usr/local/info/cronolog.info make install-man1 make[3]: Entering directory `/opt/cronolog-1.6.2/doc‘ /bin/sh ../mkinstalldirs /usr/local/man/man1 /usr/bin/install -c -m 644 ./cronolog.1m /usr/local/man/man1/cronolog.1m /usr/bin/install -c -m 644 ./cronosplit.1m /usr/local/man/man1/cronosplit.1m make[3]: Leaving directory `/opt/cronolog-1.6.2/doc‘ make[2]: Leaving directory `/opt/cronolog-1.6.2/doc‘ make[1]: Leaving directory `/opt/cronolog-1.6.2/doc‘ Making install in testsuite make[1]: Entering directory `/opt/cronolog-1.6.2/testsuite‘ make[2]: Entering directory `/opt/cronolog-1.6.2/testsuite‘ make[2]: Nothing to be done for `install-exec-am‘. make[2]: Nothing to be done for `install-data-am‘. make[2]: Leaving directory `/opt/cronolog-1.6.2/testsuite‘ make[1]: Leaving directory `/opt/cronolog-1.6.2/testsuite‘ make[1]: Entering directory `/opt/cronolog-1.6.2‘ make[2]: Entering directory `/opt/cronolog-1.6.2‘ make[2]: Nothing to be done for `install-exec-am‘. make[2]: Nothing to be done for `install-data-am‘. make[2]: Leaving directory `/opt/cronolog-1.6.2‘ make[1]: Leaving directory `/opt/cronolog-1.6.2‘ [root@eygle cronolog-1.6.2]# which cronolog /usr/local/sbin/cronolog
安裝完成以后需要對apache進(jìn)行適當配置,修改httpd.conf文件,主要注意以下幾點(diǎn):
1.自定義日志格式
CustomLog "|/usr/local/sbin/cronolog /opt/apache/logs/access_log.%Y%m%d" combined
2.如果存在多個(gè)虛擬站點(diǎn)
可以考慮在VirtualHost進(jìn)行相應設置
ServerAdmin webmaster@dummy-host.example.com DocumentRoot /www/docs/dummy-host.example.com ServerName dummy-host.example.com ErrorLog logs/dummy-host.example.com-error_log CustomLog logs/dummy-host.example.com-access_log common
我的www.eygle.com存在多個(gè)子站點(diǎn),但是都使用了同一個(gè)日志文件
配置后生成日志文件的效果:
[root@eygle logs]# ls -l access_log.20041226 -rw-r--r-- 1 root root 110425 Dec 26 09:10 access_log.20041226
本站僅提供存儲服務(wù),所有內容均由用戶(hù)發(fā)布,如發(fā)現有害或侵權內容,請
點(diǎn)擊舉報。