sessionstorage可用于临时存储错误日志,仅限当前标签页生命周期,关闭即清空;建议以数组形式存多条日志并限制数量(如20条),避免覆盖和膨胀,敏感信息勿记录,生产环境应配合sentry等专业工具。

SessionStorage 可以用来保存临时错误日志,但要注意它只在当前浏览器标签页生命周期内有效,关闭标签页即清空。适合记录用户本次操作过程中产生的错误,比如表单提交失败、API 请求异常等,便于前端调试或上报。
如何存入错误日志
把错误信息整理成对象(推荐含时间、错误类型、消息、堆栈等),转为 JSON 字符串后存入 sessionStorage。例如:
- 捕获错误后,构造日志对象:const log = { timestamp: Date.now(), type: 'API_ERROR', message: err.message, stack: err.stack };
- 用 sessionStorage.setItem('errorLog', JSON.stringify(log)) 存储;
- 如果要累积多条日志,可先读取已有内容:const logs = JSON.parse(sessionStorage.getItem('errorLog') || '[]'); 然后 push 新日志,再重新 setItem。
怎么组织多条日志更实用
单条日志容易被覆盖,建议用数组结构管理:
批量分析录音转写,输出多维度拓客报告。触发词:录音分析、总结、音频总结、拜访记录总结。当用户提及「分析录音」「看看录音数据」「最近的录音」「通话记录」且意图为批量统计/分析时触发。仅出现「录音」或「拜访」时需结合上下文,若仅查看单条详情则不触发。
- 初始化时检查是否存在日志数组:let logs = JSON.parse(sessionStorage.getItem('errorLogs') || '[]');
- 每次新增日志后限制数量(如最多保留 20 条),避免膨胀:logs.push(log); if (logs.length > 20) logs.shift();
- 再写回:sessionStorage.setItem('errorLogs', JSON.stringify(logs));
读取和清理日志
调试时可手动在控制台执行:JSON.parse(sessionStorage.getItem('errorLogs') || '[]') 查看全部日志;
- 上报成功后建议清除:sessionStorage.removeItem('errorLogs');
- 页面加载完成或用户登出时也可主动清空,避免干扰下一次会话;
- 注意:sessionStorage 不支持跨标签页共享,每个标签页独立存储。
注意事项和替代建议
SessionStorage 不是错误监控的最终方案,仅适合临时缓存:
- 不能持久化,刷新页面还在,关掉标签页就丢;
- 容量有限(通常 5MB 左右),别存大对象或原始响应体;
- 敏感信息(如用户 ID、token)不要记入日志;
- 生产环境建议配合 Sentry、Bugsnag 等专业工具做自动采集和上报。
Java免费学习笔记:立即使用
解锁 Java 大师之旅:从入门到精通的终极指南










