HttpLog模块

ngx_http_log_module实例

  1. log_format gzip '$remote_addr - $remote_user [$time_local] '
  2. : '"$request" $status $bytes_sent '
  3. : '"$http_referer" "$http_user_agent" "$gzip_ratio"';
  4. access_log /spool/logs/nginx-access.log gzip buffer=32k;

指令

  • access_log
  • log_format

    access_log

语法:*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":

  1. log_format combined '$remote_addr - $remote_user [$time_local] '
  2. : '"$request" $status $apache_bytes_sent '
  3. : '"$http_referer" "$http_user_agent"';

参考

原始文档

原文: https://wizardforcel.gitbooks.io/nginx-doc/content/Text/3.17_httplog.html