Q应用日志里哪些信息最能帮助排查问题?当线上出现报错或异常行为时,日志里保留哪些字段更容易快速定位问题?
A优先保留可定位信息
建议记录时间戳、日志级别、服务名称、模块名、请求ID或TraceID、用户操作、请求参数摘要、返回结果、错误码、异常堆栈和耗时。这些内容能帮助你快速还原调用链路,判断问题发生在哪个环节。
Q应用日志需要记录用户请求的完整数据吗?为了方便排查,是否应该把所有请求参数和响应内容都写进日志里?
A只记录必要且安全的数据
不建议把完整敏感数据直接写入日志。可以记录关键参数、脱敏后的用户标识、业务状态、请求结果和失败原因。像密码、验证码、令牌、身份证号、银行卡号这类信息应避免明文输出。
Q不同日志级别分别适合记录什么内容?开发、测试和线上环境里,日志级别该怎么区分,哪些信息适合放到不同级别?
A按影响范围和重要性分级
DEBUG适合记录调试细节和中间变量,INFO适合记录业务流程、关键操作和状态变化,WARN适合记录可恢复的异常或风险提示,ERROR适合记录影响功能的错误和异常堆栈。级别区分清楚后,排查效率会更高。
Q日志里还要不要记录性能相关内容?如果应用偶尔变慢,日志应该补充哪些性能数据来辅助分析?
A记录耗时与资源线索
建议记录接口耗时、数据库查询耗时、第三方调用耗时、重试次数、超时信息和资源异常提示。对长耗时操作打点后,能更快发现是接口链路、数据库还是外部依赖带来的性能问题。