標簽:
用accessJog指令指定服務器日志文件存放路徑
用log_format指令設置了日志格式之后,需要用access_log指令指定日志文件存放路徑。access_log指令的語法如下:
access_logpath[format[buffer=sizeIoff]]
其中path表示日志文件的存放路徑,format表示使用log_format指令設置的日志格式的名稱,buffer=size表示設置內存緩沖區的大小,例如可以設置buffer=32k。(1)如果不想記錄日志,可以使用以下指令關閉日志記錄:access_logoff;
(2)如果想使用默認的《^*匕&格式的日志記錄,可以使用以下示例:access_log/datal/logs/filename.log;
或者
access_log/datal/logs/filename.logcombined;
(3)如果想使用自定義格式的日志記錄,可以使用以下示例,其中的myl0gf0rmat是日志格式名稱:
log_formatmylogformat’$remote_addr-$remote_user[$time_local]”$request”‘
‘$status$body_bytes_sent”$http_referer”*
‘H$http__user_agentM$http_x_forwarded_for’;
access_log/datal/logs/access.Iogmylogformatbuffer=32k;
(4)在噸丨狀0.7.4之后的版本中,IBM服務器指令中的日志文件路徑可以包含變量,例如:access_log/datal/logs/$server_name.logcombined;
假設server_name指令設置的虛擬主機名稱為test.domain.com,那么access_log指令將把訪問日志記錄在/datal/logs/test.domain.com.log文件中。
如果日志文件路徑中含有變量,將存在以下一些限制:
(1)Nginx進程設置的用戶和組必須有對該路徑創建文件的權限。假設Nginx的user指令IBM服務器代理設置的用戶名和用戶組都是www,而他131爪^/目錄的用戶名和用戶組為root,日志文件/dataMogs/test.domain.com.log將無法被Nginx創建;
(2)緩沖將不會被使用;
(3)對于每一條日志記錄,日志文件都將先打開文件,宿遷波仔再寫入日志記錄,然后馬上關閉。為了提高包含變量的日志文件存放路徑的性能,須要使用open_log_file_cache指令設置經常被使用的日志文件描述符緩存。
open_log_file_cache指令主要用來設置含有變量的日志路徑的文件描述符緩存,它的語法如下:
open_log_file_cachemax=N[inactive=time][min_uses=N][valid=time]Ioff
該指令默認是禁止的,等同于:open_log_file—cacheoff; .
open_log_file_cache指令的各項參數說明如下:
max:設置緩存中的最大文件描述符數量。如果超過設置的最大文件描述符數量,則采用LRU(LeastRecentlyUsed)算法清除“較不常使用的文件描述符”。LRU(LeastRecentlyUsed)算法的基本概念是:IBM服務器當內存緩沖區剩余的可用空間不夠時,緩沖區盡可能地先保留使用者最常使用的數據,將最近未使用的數據移出內存,騰出空間來加載另外的數據。
inactive:設置一個時間,如果在設置的時間內沒有使用此文件描述符,則自動刪除此描述符。此參數為可選參數,默認的時間為10秒鐘。
min_uses:在參數^^^^^指定的時間范圍內,如果IBM服務器日志文件超過被使用的次數,則將該日志文件的描述符記入緩存。默認次數為1。
valid:設置多長時間檢查一次,看一看變量指定的日志文件路徑與文件名是否仍然存在^默認時間為60秒。
off:禁止使用緩存。
open_log_file_cache指令的設置不例如下:open_log_file_cachemax=1000inactive=20smin_uses=2valid=lm
|