2022-02-15 11:47:36
前端、后端、测试程序员查看后端日志的必备技巧包括理解日志基础、选择工具、定位日志文件路径、掌握常用命令及结合场景灵活应用,具体如下:
理解日志基础
定义与作用:日志是记录程序运行过程中重要信息的文本文件(如.log),用于追踪执行状况、定位问题、调试代码。例如,记录用户请求参数、接口响应时间、错误堆栈等。
分级与关注点:
debug:开发调试信息,正式环境通常关闭。
info:关键业务信息(如用户登录成功)。
warn:潜在问题(如磁盘空间不足)。
error:错误与异常(如数据库连接失败)。
核心关注:优先查看info(业务流)和error(异常点)级别日志。
选择查看工具
终端工具:
Tabby/XShell:免费开源的SSH客户端,支持多标签、语法高亮,适合频繁登录服务器查看日志。
SecureCRT:商业工具,功能稳定,适合企业环境。
网页平台:部分公司自建日志系统(如ELK Stack),提供搜索、可视化功能,无需直接操作服务器。
本地编辑器:直接下载日志文件后,用VS Code、Notepad++等打开,适合离线分析。
定位日志文件路径
常规路径:
/data/${服务名}/log/(如/data/cafe-user/log/cafe-user.log)。
/var/log/(系统日志,如Nginx访问日志)。
部署差异:
Docker环境:通过docker logs <容器ID>查看,或进入容器内/var/log/目录。
Kubernetes环境:使用kubectl logs <Pod名>或通过日志收集系统(如Fluentd)查询。
快速确认路径:
询问团队文档或后端开发人员。
检查应用配置文件(如application.yml中的logging.path参数)。
掌握常用命令
基础查看:
cat filename.log:查看全部内容(适合小文件)。
head -n 20 filename.log:查看前20行。
tail -n 20 filename.log:查看末尾20行。
实时监控:
tail -f filename.log:动态追踪新日志(按Ctrl+C退出)。
示例:监控用户注册接口日志:tail -f /data/user-service/log/register.log。
搜索过滤:
grep "keyword" filename.log:搜索包含关键词的行。
组合命令:
tail -f app.log | grep "error":实时监控错误日志。
cat error.log | grep "500" | tail -n 10:查看最近10条500错误。
高级操作:
less filename.log:分页浏览,支持搜索(/keyword)、跳转(G到末尾,g到开头)。
zcat filename.log.gz:查看压缩日志(无需解压)。
结合场景灵活应用
排查接口异常:
步骤:
通过tail -f实时监控相关服务日志(如订单服务)。
使用grep过滤请求ID或错误码(如grep "req_12345" order.log)。
结合时间戳定位问题发生时段。
分析性能瓶颈:
示例:查找耗时超过500ms的请求:
grep "duration" access.log | awk '$3 > 500 {print}'定位线上故障:
紧急场景下,优先查看error日志,结合tail -f和grep快速锁定关键错误(如数据库连接池耗尽)。
协作沟通:
提取关键日志片段(如错误堆栈、请求参数)分享给团队,避免口头描述歧义。
注意事项
权限问题:确保账号有日志目录的读取权限(如chmod 644 filename.log)。
日志轮转:大文件可能被分割(如app.log.1、app.log.2),需查看最新文件。
敏感信息:避免在日志中记录密码、Token等,防止泄露。
性能影响:高频实时监控(如tail -f)可能对服务器I/O造成压力,生产环境慎用。