【笔记】Nginx配置类似Tomcat请求接口链路access_log日志

项目部署在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;
        # 其他配置...
    }
}

# 其他配置...

}
总结:

有时候记录每一次请求的链路过程并落盘还是很有必要,以上仅供参考,亲测有效.

相关推荐
水冗水孚15 分钟前
🚀四种方案解决浏览器地址栏预览txt文本乱码问题🚀Content-Type: text/plain;没有charset=utf-8
javascript·nginx·node.js
苏州向日葵2 小时前
virtualBox安装ubuntu,常用知识点
linux·运维·ubuntu
夜光小兔纸2 小时前
SQL Server 修改数据库名及物理数据文件名
运维·数据库·sql server
yangzx的网工日常2 小时前
网络的那些事——初级——OSPF(1)
运维·服务器·网络
zsq9 小时前
【论文阅读笔记】HaDes幻觉检测benchmark
论文阅读·笔记·nlp·大语言模型幻觉
代码写到35岁10 小时前
Jenkins自动发布C# EXE执行程序
运维·c#·jenkins
nenchoumi311912 小时前
Swift 6 学习笔记(二)The Basics
笔记·学习·swift
村头的猫13 小时前
建站SEO优化之站点地图sitemap
前端·经验分享·笔记
蜉蝣之翼❉13 小时前
games101 hw1
笔记·图形渲染
苹果醋314 小时前
AI大模型竞赛升温:百度发布文心大模型4.5和X1
java·运维·spring boot·mysql·nginx