配置實例 指令 access_log log_format open_log_file_cache |
ngx_http_log_module
模塊按指定的格式寫訪問日誌。html
請求在處理結束時,會按請求路徑的配置上下文記訪問日誌。 若是在請求處理期間產生了內部跳轉, 請求結束時的路徑可能不一樣於原始的請求路徑。nginx
log_format gzip '$remote_addr - $remote_user [$time_local] ' '"$request" $status $bytes_sent ' '"$http_referer" "$http_user_agent" "$gzip_ratio"'; access_log /spool/logs/nginx-access.log gzip buffer=32k;
語法: | access_log access_log |
默認值: | access_log logs/access.log combined; |
上下文: | http , server , location , if in location , limit_except |
爲訪問日誌設置路徑,格式和緩衝區大小(nginx訪問日誌支持緩存)。 在同一個配置層級裏能夠指定多個日誌。 特定值off
會取消當前配置層級裏的全部access_log
指令。 若是沒有指定日誌格式則會使用預約義的「combined
」格式。緩存
緩衝區的大小不能超過磁盤文件原子性寫入的大小。 對於FreeBSD來講緩衝區大小是無限制的。spa
日誌文件的路徑能夠包含變量(0.7.6+), 但此類日誌存在一些限制:日誌
valid
參數指定的時間裏, 寫操做能持續寫到舊文件。access_log
是一個不錯的想法:
server { root /spool/vhost/data/$host; access_log /spool/vhost/logs/$host; ...
語法: | log_format |
默認值: | log_format combined "..."; |
上下文: | http |
指定日誌的格式。code
日誌格式容許包含普通變量和只在日誌寫入時存在的變量:orm
$body_bytes_sent
server
發送給客戶端的字節數,不包括響應頭的大小; 該變量與Apache模塊mod_log_config
裏的「%B
」參數兼容。htm
$bytes_sent
進程
發送給客戶端的總字節數。
$connection
鏈接的序列號。
$connection_requests
當前經過一個鏈接得到的請求數量。
$msec
日誌寫入時間。單位爲秒,精度是毫秒。
$pipe
若是請求是經過HTTP流水線(pipelined)發送,pipe值爲「p
」,不然爲「.
」。
$request_length
請求的長度(包括請求行,請求頭和請求正文)。
$request_time
請求處理時間,單位爲秒,精度毫秒; 從讀入客戶端的第一個字節開始,直到把最後一個字符發送給客戶端後進行日誌寫入爲止。
$status
響應狀態。
$time_iso8601
ISO8601標準格式下的本地時間。
$time_local
通用日誌格式下的本地時間。
發送給客戶端的響應頭擁有「sent_http_
」前綴。 好比$sent_http_content_range
。
配置始終包含預先定義的「combined
」日誌格式:
log_format combined '$remote_addr - $remote_user [$time_local] ' '"$request" $status $body_bytes_sent ' '"$http_referer" "$http_user_agent"';
語法: | open_log_file_cache open_log_file_cache |
默認值: | open_log_file_cache off; |
上下文: | http , server , location |
定義一個緩存,用來存儲頻繁使用的文件名中包含變量的日誌文件描述符。 該指令包含如下參數:
max
設置緩存中描述符的最大數量;若是緩存被佔滿,最近最少使用(LRU)的描述符將被關閉。
inactive
設置緩存文件描述符在多長時間內沒有被訪問就關閉; 默認爲10秒。
min_uses
設置在inactive
參數指定的時間裏, 最少訪問多少次才能使文件描述符保留在緩存中;默認爲1。
valid
設置一段用於檢查超時後文件是否仍以一樣名字存在的時間; 默認爲60秒。
off
禁用緩存。
使用實例:
open_log_file_cache max=1000 inactive=20s valid=1m min_uses=2;