GB | BIG5
|
| 首頁 > 應用技術 > Apache > 正文 |
 |
| Apche日志系列(3):定制日志 |
| http://cn.internet.com 仙人掌工作室 編譯 (2001-05-16 20:56:44) |
有時候我們需要定制Apache默認日志的格式和內容,比如增加或減少日志所記錄的信息、改變默認日志文件的格式等。本文介紹可以用日志記錄的所有信息,以及如何設置Apache使其記錄這些信息。
一、定義日志格式(4月3日)
很久以前,日志文件只有一種格式,這就是“公共格式”,許多人已經習慣使用這種格式。隨出現了定制日志格式,而且看起來定制日志格式更很受歡迎,即使公共日志格式本身也重新用定制日志格式定義。本文介紹的就是如何隨心所欲地定制日志文件的格式、如何讓日志文件記錄自己想要的信息。
定制日志文件的格式涉及到兩個指令,即LogFormat指令和CustomLog指令,默認httpd.conf文件提供了關這兩個指令的幾個示例。
LogFormat指令定義格式並為格式指定一個名字,以我們就可以直接引用這個名字。CustomLog指令設置日志文件,並指明日志文件所用的格式(通常通過格式的名字)。
LogFormat指令的功能是定義日志格式並為它指定一個名字。例如,在默認的httpd.conf文件中,我們可以找到下面這行代碼:
LogFormat "%h %l %u %t \"%r\" %>s %b" common
該指令創建了一種名為“common”的日志格式,日志的格式在雙引號包圍的內容中指定。格式字符串中的每一個變量代表著一項特定的信息,這些信息按照格式串規定的次序寫入到日志文件。
Apache文檔已經給出了所有可用格式串的變量及其含義,下面是其譯文:
----------------------------------------------------------------------
%...a: 遠程IP地址
%...A: 本地IP地址
%...B: 已發送的字節數,不包含HTTP頭
%...b: CLF格式的已發送字節數量,不包含HTTP頭。
例如當沒有發送數據時,寫入‘-’而不是0。
%...{FOOBAR}e: 環境變量FOOBAR的內容
%...f: 文件名字
%...h: 遠程主機
%...H 請求的協議
%...{Foobar}i: Foobar的內容,發送給服務器的請求的標頭行。
%...l: 遠程登錄名字(來自identd,如提供的話)
%...m 請求的方法
%...{Foobar}n: 來自另外一個模塊的注解“Foobar”的內容
%...{Foobar}o: Foobar的內容,應答的標頭行
%...p: 服務器響應請求時使用的端口
%...P: 響應請求的子進程ID。
%...q 查詢字符串(如果存在查詢字符串,則包含“?”面的
部分;否則,它是一個空字符串。)
%...r: 請求的第一行
%...s: 狀態。對進行內部重定向的請求,這是指*原來*請求
的狀態。如果用%...>s,則是指來的請求。
%...t: 以公共日志時間格式表示的時間(或稱為標準英文格式)
%...{format}t: 以指定格式format表示的時間
%...T: 為響應請求而耗費的時間,以秒計
%...u: 遠程用戶(來自auth;如果返回狀態(%s)是401則可能是偽造的)
%...U: 用戶所請求的URL路徑
%...v: 響應請求的服務器的ServerName
%...V: 依照UseCanonicalName設置得到的服務器名字
------------------------------------------------------------------
在所有上面列出的變量中,“...”表示一個可選的條件。如果沒有指定條件,則變量的值將以“-”取代。分析前面來自默認httpd.conf文件的LogFormat指令示例,可以看出它創建了一種名為“common”的日志格式,其中包括:遠程主機,遠程登錄名字,遠程用戶,請求時間,請求的第一行代碼,請求狀態,以及發送的字節數。
有時候我們只想在日志中記錄某些特定的、已定義的信息,這時就要用到“...”。如果在“%”和變量之間放入了一個或者多個HTTP狀態代碼,則只有當請求返回的狀態代碼屬指定的狀態代碼之一時,變量所代表的內容才會被記錄。例如,如果我們想要記錄的是網站的所有無效鏈接,那可以使用:
----------------------------------------------------
LogFormat %404{Referer}i BrokenLinks
---------------------------------------------------
反之,如果我們想要記錄那些狀態代碼不等指定值的請求,只需加入一個“!”符號即可:
LogFormat %!200U SomethingWrong
(http://www.fanqiang.com)
進入【UNIX論壇】
|
|
| 相關文章 |
Apche日志系列(5):高級技術 (2001-05-16 20:57:21) Apche日志系列(4):日志分析 (2001-05-16 20:57:02) Apche日志系列(3):定制日志 (2001-05-16 20:56:44) Apche日志系列(2):錯誤日志 (2001-05-16 20:56:18) Apche日志系列(1):訪問日志 (2001-05-16 20:55:54)
|
|
|
|
 |
★ 樊強制作 歡迎分享 ★ |