在使用nginx时候,我们经常需要查看对应的请求日志记录或者错误日志记录,nginx日志分两种,分别是访问日志和错误日志。
访问日志
访问日志指的是nginx常见的客户端请求信息,比如时间,路径,userAgent等信息
access_log指令语法格式如下
access_log path [format [buffer=size] [gzip[=level]] [flush=time] [if=condition]];
默认值:access_log logs/access.log combined;
可配置的上下文:http
, server
, location
, if in location
, limit_except
常见的access_log
在http
或者server
上下文中配置
http {
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 /usr/local/etc/nginx/logs/access.log main;
}
server {
server_name static.abc.com;
access_log /usr/local/etc/nginx/logs/access_static.log main;
}
配置完成后,需要手动在nginx目录下新建对应的文件,这里有 access.log
和 access_static.log
两个文件,新建完成后,访问 static.abc.com,可以在 access_static
目录下看到对应的日志
127.0.0.1 - - [02/Feb/2021:11:10:22 +0800] "GET / HTTP/1.1" 304 0 "http://static.abc.com/" "Mozilla/5.0 (Macintosh; Intel Mac OS X 11_1_0) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/88.0.4324.96 Safari/537.36" "-"
日志的格式是通过上面 log_format
来配置的
log_format指令语法格式如下
log_format name [escape=default|json|none] string ...;
log_format 指令只能配置在 http
日志格式可以使用nginx内置变量,通过$来使用,更多变量说明可以查看官方文档
错误日志
错误日志主要记录客户端访问出错或者服务常见错误,比如502等的日志
error_log指令语法格式如下
error_log file [level];
默认值:error_log logs/error.log error;
可配置的上下文:main
, http
, mail
, stream
, server
, location
error_log无法配置格式,但是可以配置等级,默认是error,可选值如下:debug
| info
| notice
| warn
| error
| crit
| alert
| emerg