apache默認(rèn)的日志配置為:
ErrorLog "logs/error_log"
CustomLog "logs/access_log" common
這樣所有的錯誤日志和訪問日志內(nèi)容均分別保存在error_log和access_log文件中,,時間一長,,日志文件的內(nèi)容就會變的非常大。一般情況下,,我們希望將日志按一定的時間段或文件大小存成不同的文件,。如每天存一個日志文件。
此功能可通過LINUX的logrotate實(shí)現(xiàn),,但它有一個缺點(diǎn),,執(zhí)行文件輪轉(zhuǎn)時(即創(chuàng)建新文件后)可能需要通過腳本重啟服務(wù)以實(shí)現(xiàn)將日志內(nèi)容記錄到新的日志文件中。
apache提供了一個命令:rotatelogs(位于apache的bin目錄下),,可以完美的實(shí)現(xiàn)日志的輪轉(zhuǎn)功能,。
rotatelogs的語法可通過 rotatelogs -h查看。
以下通過3個例子說明其常用用法:
ErrorLog "|/usr/app/httpd-2.4.2/bin/rotatelogs /usr/app/httpd-2.4.2/logs/error_log.%Y-%m-%d 86400 480"
每天生成一個錯誤日志文件,。
其中"/usr/app/httpd-2.4.2/bin/rotatelogs 為rotatelogs的絕對路徑,,看很多例子用相對路徑bin/rotatelogs,我試了不行,。記得路徑前有“|”,。日志文件/usr/app/httpd-2.4.2/logs/error_log.%Y-%m-%d最好用絕對路徑,在我的測試中,,有些可以用相對路徑,,但有些不行,會導(dǎo)致apache啟動失敗,。
logs/error_log.%Y-%m-%d 為日志文件的格式,,實(shí)際為:error_log.2012-10-23
86400為日志生成的時間間隔,即每隔86400秒生成一個新的日志,,當(dāng)然如果這段時間沒有任何錯誤產(chǎn)生,,不會生成新的日志文件,。
480為時間差,以分鐘為單位,。文件的時間為美國時間,,中國的時差要比美國多8個小時也就是480分鐘,所以要加上480分鐘,。如果不加,,那日志記錄的時間就會比實(shí)際服務(wù)器時間晚480分鐘。
CustomLog "|/usr/app/httpd-2.4.2/bin/rotatelogs /usr/app/httpd-2.4.2/logs/access_log.%Y-%m-%d.%H:%M:%S 180 480" common
每180秒生成一個access日志文件,,文件名形如:access_log.2012-10-24.23:42:00
ErrorLog "|/usr/app/httpd-2.4.2/bin/rotatelogs /usr/app/httpd-2.4.2/logs/errorlog.%Y-%m-%d-%H_%M_%S 2M +480"
當(dāng)日志文件達(dá)到2M后生成新的日志文件,,支持的單位為K,M,G 注意:以上命令 |
|