项目部署在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;
# 其他配置...
}
}
# 其他配置...
}
总结:
有时候记录每一次请求的链路过程并落盘还是很有必要,以上仅供参考,亲测有效.