HttpLog模块
ngx_http_log_module实例
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;
指令
语法:*accesslog path [format [buffer=size | off ] 默认值:_access_log log/access.log combined*
作用域:*http, server, location*
指令 access_log 指派路径、格式和缓存大小。参数 "off" 将清除当前级别的所有 access_log 指令。如果未指定格式,则使用预置的 "combined" 格式。缓存不能大于能写入磁盘的文件的最大大小。在 FreeBSD 3.0-6.0 ,缓存大小无此限制。
log_format
语法:*log_format name format [format …]*
默认值:*log_format combined "…"*
作用域:*http*server
Directive log_format describes the format of a log entry. Besides general variables in the format it is possible to use variables which exist only at the moment of record into the log:
- $body_bytes_sent, the number of bytes, transmitted to client minus the response headers, variable is compatible with parameter %B of module Apache's mod_log_config (this was called $apache_bytes_sent, before version 0.3.10)
- $bytes_sent, the number of bytes, transmitted to client
- $connection, the number of connection
- $msec, the time with an accuracy to microseconds at the moment of the log entry
- $pipe, "p" if request was pipelining
- $request_length, the length of the body of the request
- $request_time, the time of working on request in seconds
- $status, status of answer
- $timelocal, local time into common log format.
The headers, transmitted to client, begin from the prefix "sent_http", for example, $sent_http_content_range.
In the configuration there is always a predetermined format "combined":
log_format combined '$remote_addr - $remote_user [$time_local] '
: '"$request" $status $apache_bytes_sent '
: '"$http_referer" "$http_user_agent"';
参考
原文: https://wizardforcel.gitbooks.io/nginx-doc/content/Text/3.17_httplog.html