Apche日誌系列(3):定製日誌(轉)
Apche日誌系列(3):定製日誌(轉)[@more@]有時候我們需要定製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
來自 “ ITPUB部落格 ” ,連結:http://blog.itpub.net/8225414/viewspace-937344/,如需轉載,請註明出處,否則將追究法律責任。
相關文章
- Apche日誌系列(4):日誌分析(轉)
- Apche日誌系列(1):訪問日誌(轉)
- Apche日誌系列(2):錯誤日誌(轉)
- Apche日誌系列(5):高階技術(轉)
- apche-tomcat日誌過大解決方案。Tomcat
- Raft演算法系列教程3:日誌複製Raft演算法
- wazuh日誌審計--定製規則
- MySQL(3)-日誌MySql
- 開學日誌3
- 日誌傳送事務日誌備份設定
- mysql之 日誌體系(錯誤日誌、查詢日誌、二進位制日誌、事務日誌、中繼日誌)MySql中繼
- 減肥日誌系列之一
- php日誌,記錄日誌PHP
- 日誌分析-apache日誌分析Apache
- 【Oracle】歸檔日誌管理-設定歸檔日誌路徑以及歸檔日誌冗餘Oracle
- 如何定製.NET6.0的日誌記錄
- Nginx日誌格式設定Nginx
- 聯機重做日誌、歸檔日誌、備用重做日誌
- mysql 日誌之錯誤日誌MySql
- mysql 日誌之慢查詢日誌MySql
- 【Oracle日誌】- 日誌檔案重建Oracle
- 複製和日誌傳送
- 日誌
- eclipse設定檢視GC日誌和如何理解GC日誌EclipseGC
- [日誌分析篇]-利用ELK分析jumpserver日誌-日誌拆分篇Server
- mysql 日誌之普通查詢日誌MySql
- 日誌轉儲指令碼指令碼
- 如何定時切割nginx日誌?Nginx
- 設定Spark日誌級別Spark
- 重做日誌大小的設定
- Postgresql日誌歸檔設定SQL
- 設定mybatis 是否列印日誌MyBatis
- SVN提交日誌模板設定
- MySQL資料庫中的日誌檔案---(3)慢查詢日誌MySql資料庫
- mysql 日誌之二進位制日誌MySql
- MYSQL啟用日誌和檢視日誌MySql
- 日誌篇:模組日誌總體介紹
- oracle物化檢視日誌系列(一)Oracle