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時區名
%%符號"%"自己
本文出自 「清源教育」 博客,轉載請註明此處,謝謝!