詳解Apache 日誌分割教程

1、日誌切割php

安裝cronologhtml

CentOS 5.3中編譯安裝Apache日誌默認是不切割的,須要用用工具Cronnolog進行日誌切割。apache

 

1.下載及安裝工具

wget http://cronolog.org/download/cronolog-1.6.2.tar.gz學習

tar zxvf cronolog-1.6.2.tar.gzrest

cd cronolog-1.6.2日誌

./configurehtm

make &&  make installblog

 

2.用which命令查看路徑驗證安裝ssl

which cronolog

默認路徑爲:/usr/local/sbin/cronolog

 

3.配置

vi /usr/local/apache/conf/httpd.conf

CustomLog 「|/usr/local/sbin/cronolog /usr/local/apache/logs/access_%Y%m%d.log」 combined   #定義訪問日誌

ErrorLog 「|/usr/local/sbin/cronolog /home/www/ex/log/error_%Y%m%d.log」                    #定義錯誤日誌

保存配置文件後,重啓apache。

命令:service httpd restart

還有另一種使用rotatelogs 方法配置:

Linux系統配置方法:

將其改成 (PS:^_^不錯的php學習交流羣:276167802,驗證:csl,有興趣的話能夠加入進來一塊兒討論)

ErrorLog "| /usr/local/apache/bin/rotatelogs /usr/local/apache/logs/%Y_%m_%d_error_log 86400 480"

CustomLog "| /usr/local/apache/bin/rotatelogs /usr/local/apache/logs/%Y_%m_%d_access_log 86400 480" common

Windows系統下配置方法:

#ErrorLog "|bin/rotatelogs.exe logs/error-%y%m%d.log 86400 480"

#CustomLog "|bin/rotatelogs.exe logs/access-%y%m%d.log 86400 480" common

 

2、apache日誌切割

編輯Apache的主配置文件httpd.conf,更改內容以下:

註釋掉以下兩行

ErrorLog logs/error_log

CustomLog logs/access_log common

而後添加以下兩行

ErrorLog "|/usr/local/apache/bin/rotatelogs /usr/local/apache/logs/errorlog.%Y-%m-%d-%H_%M_%S 2M +480"

CustomLog "|/usr/local/apache/bin/rotatelogs /usr/local/apache/logs/accesslog.%Y-%m-%d-%H_%M_%S 2M +480" common

 

意義以下:

errorlog.%Y-%m-%d-%H_%M_%S爲生成日誌的格式,相似於這樣:errorlog.2010-04-15-11_32_30 ,以年月日時分秒爲單位的,

2M 爲日誌的大小,即爲日誌達到多大後生成新的日誌文件,支持的單位爲K,M,G,本處爲2M。

+480 爲時差,文件的時間爲美國時間,中國的時差要比美國多8個小時也就是480分鐘,因此要加上480分鐘。

 

rotatelogs說明:

rotatelogs logfile [ rotationtime [ offset ]] | [ filesizeM ]

rotationtime指的是設定多少秒後進行日誌切割,如這裏的300秒,在設定的時間以後系統將自動切割日誌;

offset指的是日誌時間的偏移量,若是不設置該偏移量,則默認爲0,且顯示的時間與北京時間會不同,與北京時間相差8個小     時,故建議將其設置爲+480,單位爲分鐘;

filesizeM指的是日誌多大以後自動切割,可接受的單位爲K,M,G,上面的ErrorLog設置爲400M以後自動切割日誌。

 

其餘的設置方法以下:

天天生成一個錯誤日誌文件

ErrorLog "|bin/rotatelogs.exe -l logs/error-%Y-%m-%d.log 86400"

其中86400爲輪轉的時間單位爲秒

參考:http://hi.baidu.com/jiaofu1127/blog/item/15fed5fa19895b47342acc4a.html

rotatelogs - 滾動Apache日誌的管道日誌程序

rotatelogs是一個配合Apache管道日誌功能使用的簡單程序。舉例:

CustomLog "|bin/rotatelogs /var/logs/logfile 86400" common

此配置會創建文件"/var/logs/logfile.nnnn",其中的nnnn是名義上的日誌啓動時的系統時間(此時間老是滾動時間的倍數,能夠用於cron腳本的同步)。在滾動時間到達時(在此例中是24小時之後),會產生一個新的日誌。

CustomLog "|bin/rotatelogs /var/logs/logfile 5M" common

此配置會在日誌文件大小增加到5兆字節時滾動該日誌。

ErrorLog "|bin/rotatelogs /var/logs/errorlog.%Y-%m-%d-%H_%M_%S 5M"

此配置會在錯誤日誌大小增加到5兆字節時滾動該日誌,日誌文件名後綴會按照以下格式建立:errorlog.YYYY-mm-dd-HH_MM_SS 。

語法

rotatelogs [ -l ] logfile [ rotationtime [ offset ]] | [ filesizeM ]

選項

-l

使用本地時間代替GMT時間做爲時間基準。注意:在一個改變GMT偏移量(好比夏令時)的環境中使用-l會致使不可預料的結果。

logfile

它加上基準名就是日誌文件名。若是logfile中包含"%",則它會被視爲用於strftime()的格式字符串;不然它會被自動加上以秒爲單位的".nnnnnnnnnn"後綴。這兩種格式都表示新的日誌開始使用的時間。

rotationtime

日誌文件滾動的以秒爲單位的間隔時間。

offset

相對於UTC的時差的分鐘數。若是省略,則假定爲"0"並使用UTC時間。好比,要指定UTC時差爲"-5小時"的地區的當地時間,則此參數應爲"-300"。

filesizeM

指定以filesizeM文件大小滾動,而不是按照時間或時差滾動。

可移植性

下列日誌文件格式字符串能夠爲全部的strftime()實現所支持,見各類擴展庫對應的strftime()的手冊。

%A星期名全稱(本地的)

%a3個字符的星期名(本地的)

%B月份名的全稱(本地的)

%b3個字符的月份名(本地的)

%c日期和時間(本地的)

%d2位數的一個月中的日期數

%H2位數的小時數(24小時制)

%I2位數的小時數(12小時制)

%j3位數的一年中的日期數

%M2位數的分鐘數

%m2位數的月份數

%pam/pm12小時制的上下午(本地的)

%S2位數的秒數

%U2位數的一年中的星期數(星期天爲一週的第一天)

%W2位數的一年中的星期數(星期一爲一週的第一天)

%w1位數的星期幾(星期天爲一週的第一天)

%X時間(本地的)

%x日期(本地的)

%Y4位數的年份

%y2位數的年份

%Z時區名

%%符號"%"自己

 

本文出自 「清源教育」 博客,轉載請註明此處,謝謝!

相關文章
相關標籤/搜索