Nginx中的日志分两种,一种是error_log,一种是access_log。
“error_log”名字虽然叫error,但它可以配置成任意级别,默认级别是error,用来记录Nginx运行期间的处理流程相关的信息;
“access_log”指的是“访问日志”,用来记录服务器的接入信息(包括记录用户的IP、请求处理时间、浏览器信息等)。
1. error_log:
error_log是Nginx中用来配置日志打印的指令,在Nginx源码中的 “ngx_http_core_module.c” 文件中,“ngx_http_core_commands” 中就有 “error_log” 这个指令:
Nginx的error_log分级如下:
级别越高信息越少,默认error。
可以配置在main、http、server、location里面,按需要的模块进行打印。
如何配置error_log:
# 举例:
error_log /var/log/nginx/error.log crit
# 格式:
error_log [log文件存储路径] [日志级别]
如果想彻底关闭error_log:
error_log /dev/null;
使用举例:
http {
server {
location / {
root /usr/local/nginx/html/;
}
error_log /usr/local/nginx/my_log.log warn;
}
}
对某一个IP的用户输出debug级别的日志,其他终端仍按error_log中的配置进行日志打印:
# 举例:
events {
debug_connections 127.0.0.1;
}
# 格式:
debug_connections IP;
debug_connections CIDR;
这个配置必须放在 events{}
下面,因为这是处理客户连接相关的配置。
2. access_log:
如何配置access_log:
access_log [path] [format [buffer=size] [gzip=level] [flush=time] [if=confition] ];
access_log off; #关闭日志
其中,path用于指定log的存放路径;
format用于配置log格式:buffer指示日志的缓存大小,默认64k;gzip指示压缩比,从1到9,数字越大压缩比越大,压缩速度也越慢,默认为1;flush设置清空缓存的时间;if为日志写入判断条件,为0或为空语句则不写入。
使用举例:
access_log /var/logs/my_access.log