Apache日誌配置引數詳細說明

2021-09-20 10:55:46 字數 3503 閱讀 9679

apache日誌按時間分段記錄

在apache的配置檔案httpd.conf中找到

errorlog logs/error_log及customlog logs/access_log common

linux系統配置方法:

將其改為

errorlog 「| /usr/local/apache/bin/rotatelogs /home/logs/www/%y_%m_%d_error_log 86400 480″

customlog 「| /usr/local/apache/bin/rotatelogs /home/logs/www/%y_%m_%d_access_log 86400 480″ common

windows系統下配置方法:

errorlog 「|bin/rotatelogs.exe logs/site1/error-%y%m%d.log 86400 480″

customlog 「|bin/rotatelogs.exe logs/site1/access-%y%m%d.log 86400 480″ common

其中common為日誌記錄格式裡設定的名稱。

若有多個站點,則應將以上配置寫到各站點的virtualhost節點中,這樣才會分開檔案記錄各站點日誌。

附rotatelogs說明

rotatelogs logfile [ rotationtime [ offset ]] | [ filesizem ]

選項logfile

它加上基準名就是日誌檔名。如果logfile中包含』%』,則它會被視為用於的strftime(3)的格式字串;否則,它會被自動加上以秒為單位的.nnnnnnnnnn字尾。這兩種格式都表示新的日誌開始使用的時間。

rotationtime

日誌檔案回卷的以秒為單位的間隔時間,86400 表示一天,即每天生成乙個新的日誌檔案。

offset

相對於utc的時差的分鐘數。如果省略,則預設為0,並使用utc時間。比如,要指定utc時差為-5小時的地區的當地時間,則此引數應為-300,北京時間為+8時間,應設定為480。這樣日誌裡的時間才會和伺服器上的時間一致,方便檢視日誌。

filesizem

指定回卷時以兆位元組為單位的字尾字母m的檔案大小,而不是指定回卷時間或時差。

apache日誌記錄格式的設定

定製日誌檔案的格式涉及到兩個指令,即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。

%…e: 環境變數foobar的內容

%…f: 檔案名字

%…h: 遠端主機

%…h 請求的協議

%…i: foobar的內容,傳送給伺服器的請求的標頭行。

%…l: 遠端登入名字(來自identd,如提供的話)

%…m 請求的方法

%…n: 來自另外乙個模組的註解「foobar」的內容

%…o: foobar的內容,應答的標頭行

%…p: 伺服器響應請求時使用的埠

%…p: 響應請求的子程序id。

%…q 查詢字串(如果存在查詢字串,則包含「?」後面的部分;否則,它是乙個空字串。)

%…r: 請求的第一行

%…s: 狀態。對於進行內部重定向的請求,這是指*原來*請求 的狀態。如果用%…>s,則是指後來的請求。

%…t: 以公共日誌時間格式表示的時間(或稱為標準英文格式)

%…t: 以指定格式format表示的時間

%…t: 為響應請求而耗費的時間,以秒計

%…u: 遠端使用者(來自auth;如果返回狀態(%s)是401則可能是偽造的)

%…u: 使用者所請求的url路徑

%…v: 響應請求的伺服器的servername

%…v: 依照usecanonicalname設定得到的伺服器名字 

在所有上面列出的變數中,「…」表示乙個可選的條件。如果沒有指定條件,則變數的值將以「-」取代。分析前面來自預設httpd.conf檔案的 logformat指令示例,可以看出它建立了一種名為「common」的日誌格式,其中包括:遠端主機,遠端登入名字,遠端使用者,請求時間,請求的第一 行**,請求狀態,以及傳送的位元組數。

有時候我們只想在日誌中記錄某些特定的、已定義的資訊,這時就要用到「…」。如果在「%」和變數之間放入了乙個或者多個http狀態**,則只有當請 求返回的狀態**屬於指定的狀態**之一時,變數所代表的內容才會被記錄。例如,如果我們想要記錄的是**的所有無效鏈結,那麼可以使用:

logformat %404i brokenlinks

反之,如果我們想要記錄那些狀態**不等於指定值的請求,只需加入乙個「!」符號即可:

logformat %!200u somethingwrong

專門記錄某個蜘蛛記錄

linux下

windows下

這樣在logs目錄下,就會每天產生baidu_年月日.txt的日誌了,每條的記錄和下面的類似:

去掉日誌中的、js、css、swf檔案

setenv imag 1

customlog "|bin/cronolog.exe logs/cpseadmin/access_%y%m%d.log" combined env=!imag

Apache日誌配置引數詳細說明

apache日誌按時間分段記錄 在apache的配置檔案httpd.conf中找到 errorlog logs error log及customlog logs access log common linux系統配置方法 將其改為 errorlog usr local apache bin rota...

Nginx配置引數中文詳細說明

nginx的配置檔案nginx.conf配置詳解如下 user nobody 定義nginx執行的使用者和使用者組 worker processes 1 程序數 根據硬體調整,通常等於cpu數量或者2倍於cpu。error log logs error.log info 全域性錯誤日誌 日誌級別 d...

apache日誌配置引數說明

a 遠端ip位址 a 本地ip位址 b 已傳送的位元組數,不包含http頭 b clf格式的已傳送位元組數量,不包含http頭。例如當沒有傳送資料時,寫入 而不是0。c 傳送給伺服器的cookie foobar的內容 d 伺服器請求時間,微秒 e 環境變數foobar的內容 f 檔案名字 h 遠端主...