项目部署在tomcat容器中,请求的接口会被记录在文件名:localhost_access_log.2024-03-22.log的文件中,如果使用Nginx也需要记录请求接口,该如何做呢?步骤如下
步骤1:
打开nginx.conf,在 http 块中添加自定义的 map和log_format,例如:
map $time_iso8601 $log_date {
"~^(?P<year>\d{4})-(?P<month>\d{2})-(?P<day>\d{2})" $year-$month-$day;
}
log_format custom_format '$remote_addr - $remote_user [$time_local] "$request" '
'$status $body_bytes_sent "$http_referer" '
'"$http_user_agent"';
步骤2:
在location添加请求接口日志写入文件路径下的文件名
access_log /var/log/nginx/localhost_access_log.$log_date.log custom_format;
完整如下:
http {
log_format api_log 'remote_addr - r e m o t e u s e r \[ remote_user \[ remoteuser\[time_local\] "request" $status b o d y b y t e s s e n t " body_bytes_sent " bodybytessent"http_referer" " h t t p u s e r a g e n t " " http_user_agent" " httpuseragent""request_uri"';
server {
listen 80;
server_name example.com;
location / {
access_log /var/log/nginx/api_access.log api_log;
# 其他配置...
}
}
# 其他配置...
}
总结:
有时候记录每一次请求的链路过程并落盘还是很有必要,以上仅供参考,亲测有效.