一、日志切割
安裝cronolog
CentOS 5.4中編譯安裝Apache預設日志是不切割的,需要用用工具Cronnolog進行日志切割
1.下載下傳及安裝
tar zxvf cronolog-1.6.2.tar.gz
cd cronolog-1.6.2
./configure
make && make install
2.用which指令檢視路徑驗證安裝
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系統配置方法:
将其改為
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
二、apache日志切割
輯Apache的主配置檔案,更改内容如下:
注釋掉如下兩行
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分鐘
還有其他的設定方法如下:
每天生成一個錯誤日志檔案
ErrorLog "|bin/rotatelogs.exe -l logs/error-%Y-%m-%d.log 86400"
其中86400為輪轉的時間機關為秒
<code>rotatelogs</code>是一個配合Apache管道日志功能使用的簡單程式。舉例:
<code>CustomLog "|bin/rotatelogs /var/logs/logfile 86400" common</code>
此配置會建立檔案"/var/logs/logfile.nnnn",其中的nnnn是名義上的日志啟動時的系統時間(此時間總是滾動時間的倍數,可以用于cron腳本的同步)。在滾動時間到達時(在此例中是24小時以後),會産生一個新的日志。
<code>CustomLog "|bin/rotatelogs /var/logs/logfile 5M" common</code>
此配置會在日志檔案大小增長到5兆位元組時滾動該日志。
<code>ErrorLog "|bin/rotatelogs /var/logs/errorlog.%Y-%m-%d-%H_%M_%S 5M"</code>
此配置會在錯誤日志大小增長到5兆位元組時滾動該日志,日志檔案名字尾會按照如下格式建立:<code>errorlog.YYYY-mm-dd-HH_MM_SS</code> 。
<a href="http://man.chinaunix.net/newsoft/ApacheMenual_CN_2.2new/programs/rotatelogs.html#page-header"></a>
<code>rotatelogs [ -l ] logfile [ rotationtime [ offset ]] | [ filesizeM ]</code>
<dl></dl>
<dt><code>-l</code></dt>
<dd>使用本地時間代替GMT時間作為時間基準。注意:在一個改變GMT偏移量(比如夏令時)的環境中使用<code>-l</code>會導緻不可預料的結果。</dd>
<dt><code>logfile</code></dt>
<dd>它加上基準名就是日志檔案名。如果logfile中包含"%",則它會被視為用于<code>strftime()</code>的格式字元串;否則它會被自動加上以秒為機關的".nnnnnnnnnn"字尾。這兩種格式都表示新的日志開始使用的時間。</dd>
<dt><code>rotationtime</code></dt>
<dd>日志檔案滾動的以秒為機關的間隔時間。</dd>
<dt><code>offset</code></dt>
<dd>相對于UTC的時差的分鐘數。如果省略,則假定為"0"并使用UTC時間。比如,要指定UTC時差為"-5小時"的地區的當地時間,則此參數應為"<code>-300</code>"。</dd>
<dt><code>filesizeM</code></dt>
<dd>指定以<code>filesizeM</code>檔案大小滾動,而不是按照時間或時差滾動。</dd>
下列日志檔案格式字元串可以為所有的<code>strftime()</code>實作所支援,見各種擴充庫對應的<code>strftime()</code>的手冊。
<code>%A</code>
星期名全稱(本地的)
<code>%a</code>
3個字元的星期名(本地的)
<code>%B</code>
月份名的全稱(本地的)
<code>%b</code>
3個字元的月份名(本地的)
<code>%c</code>
日期和時間(本地的)
<code>%d</code>
2位數的一個月中的日期數
<code>%H</code>
2位數的小時數(24小時制)
<code>%I</code>
2位數的小時數(12小時制)
<code>%j</code>
3位數的一年中的日期數
<code>%M</code>
2位數的分鐘數
<code>%m</code>
2位數的月份數
<code>%p</code>
am/pm12小時制的上下午(本地的)
<code>%S</code>
2位數的秒數
<code>%U</code>
2位數的一年中的星期數(星期天為一周的第一天)
<code>%W</code>
2位數的一年中的星期數(星期一為一周的第一天)
<code>%w</code>
1位數的星期幾(星期天為一周的第一天)
<code>%X</code>
時間(本地的)
<code>%x</code>
日期(本地的)
<code>%Y</code>
4位數的年份
<code>%y</code>
2位數的年份
<code>%Z</code>
時區名
<code>%%</code>
符号"%"本身
版權聲明:原創作品,如需轉載,請注明出處。否則将追究法律責任
本文轉自 holy2009 51CTO部落格,原文連結:http://blog.51cto.com/holy2010/634940