一、简介
Nginx 有一个非常灵活的日志记录模式,每个级别的配置可以有各自独立的访问日志, 所需日志模块 ngx_http_log_module 的支持,日志格式通过 log_format 命令来定义,日志对于统计和排错是非常有利的,nginx 日志相关的配置包括 access_log、rewrite_log、error_log。
二、作用域
可以应用access_log指令的作用域分别有http,server,location。也就是说,在这几个作用域外使用该指令,Nginx会报错。
access_log /var/logs/nginx-access.log combined;
//指定日志的写入路径为/var/logs/nginx-access.log,日志格式使用默认的combined
三、log_format指令
Nginx 预定义了名为main日志格式,如果没有明确指定日志格式默认使用该格式:
log_format main '$remote_addr - $remote_user [$time_local] "$request" '
'$status $body_bytes_sent "$http_referer" '
'"$http_user_agent" "$http_x_forwarded_for"';
如果不想使用Nginx预定义的格式,可以通过log_format指令来自定义。语法:
log_format name [escape=default|json] string …;
name 格式名称,自定义,在 access_log 指令中引用。
escape 设置变量中的字符编码方式是json还是default,默认是default。
string 要定义的日志格式内容。该参数可以有多个。参数中可以使用Nginx变量。
变量有:
四、自定义日志格式
log_format main '$remote_addr - $remote_user [$time_local] "$request" '
'$status $body_bytes_sent "$http_referer" '
'"$http_user_agent" "$http_x_forwarded_for"';
access_log /var/logs/nginx-access.log main;
server {
.