Nginx自定义日志格式

Nginx自定义日志格式

我们如果需要修改或者自定义 Nginx 的日志格式,那么我们只需要修改 nginx.conf 配置文件里面的 log_format 即可。

log_format语法

语法

log_format name [escape=default|json|none] string ...;

默认值

log_format combined "...";

使用环境

http

修改Nginx日志格式

案例一

我们首先使用 vim 打开 nginx 的默认配置路径,具体命令如下:

vim /etc/nginx/nginx.conf

如下图所示:

09_修改nginx日志格式.png

我们执行如上命令,打开配置文件,此时我们看到 log_format 配置内容如下所示:

10_修改nginx日志格式.png

现在,我们使用 curl 访问 nginx,并使用 tailf 命令,查看 nginx 的日志,具体命令如下:

curl 127.0.0.1

并且,我们使用 tailf 查看 nginx 的日志,具体命令如下:

tailf /var/log/nginx/access.log

我们看到,此时,输出了 nginx 的访问日志,现在,我们在日志格式里面,增加 user-agent 参数,则,具体修改为如下:

log_format main '$http_user_agent $remote_addr - $remote_user [$time_local] "$request" ' '$status $body_bytes_sent "$http_referer" ' '"$http_user_agent" "$http_x_forwarded_for"';

即,我们在最前面增加了 $http_user_agant 该配置,现在,我们重新加载配置文件,具体命令如下:

nginx -s reload

现在,我们再次访问 nginx,并查看 nginx 的日志,此时,nginx 的日志输出如下:

12_修改nginx日志格式.png

我们看到,此时 nginx 的日志前面输出了 curl 的信息,即输出了 user-agent 的信息,即,我们成功修改了 nginx 的日志格式。

案例二

我们新建一个 log_format 并命名为 access_format,具体格式如下:

log_format access_format '$remote_addr - $status';

同时,我们将 access_log 的日志格式修改为 access_format,即如下:

access_log /var/log/nginx/access.log access_format;

修改完毕,如下图所示:

13_修改nginx日志格式.png

现在,我们首先,使用 nginx 命令,查看配置文件是否正确,具体命令如下:

nginx -t

再次重新加载配置,并访问,查看 nginx 的日志,此时 nginx 的日志输出如下:

14_修改nginx日志格式.png

我们看到,此时 nginx 的日志格式已经被我们修改了。

Nginx自定义日志格式总结

我们如果需要修改或者自定义 Nginx 的日志格式,那么我们只需要修改 nginx.conf 配置文件里面的 log_format 即可。