workbuddy 仅收集显式调用产生的日志:包括 workbuddy.log()、启用 captureconsole 后的 console 日志、workbuddy.reporterror() 上报的错误、及启用 breadcrumbs 时的面包屑;不自动捕获异常、网络请求、sql 或用户行为。
☞☞☞AI 智能聊天, 问答助手, AI 智能搜索, 多模态理解力帮你轻松跨越从0到1的创作门槛☜☜☜

WorkBuddy 默认只记录明确由开发者调用 log()、console.log()(在浏览器环境)或框架指定日志方法产生的结构化日志,**不自动捕获未处理异常、网络请求、SQL 查询或用户行为**。
哪些日志会被 WorkBuddy 收集?
WorkBuddy 的日志采集依赖显式埋点,常见来源包括:
- 调用
WorkBuddy.log()方法时传入的message、level、tags和自定义context对象 - 在 Node.js 环境中重写了
console.log/console.error后触发的日志(需启用captureConsole: true配置) - 通过
WorkBuddy.reportError()上报的错误对象(会附带堆栈、时间戳和当前页面 URL) - 手动调用
WorkBuddy.addBreadcrumb()添加的面包屑(仅当配置了breadcrumbs: { enabled: true })
WorkBuddy.log() 的参数行为和陷阱
这个方法看似简单,但参数处理有隐含规则:
使用 draw.io(.drawio 格式)和 SVG 生成兼容 Microsoft Visio 的架构图。当用户需要以下任一场景时触发: - 用于 Visio 或技术文档的架构/系统/网络图 - 带连接标注的分层控制系统图 - 将 draw.io XML 转换为稳定、可嵌入的 SVG - 修复 Visio 或 draw.io 无法打开的故障排查类图表 - 任何需专业级布局且文本可编辑的图表
- 第一个参数必须是字符串或可序列化对象;传入函数、
undefined或循环引用对象会导致该条日志被静默丢弃 - 如果传入多个参数(如
WorkBuddy.log('user_id:', userId, 'status:', status)),WorkBuddy 会将它们转为数组后 JSON.stringify —— 不等价于原生console.log的格式化输出 -
level字段只接受'debug'、'info'、'warn'、'error'四个值;其他值(如'critical')会被强制降级为'error' - 超过 10KB 的
context对象会被截断,且不会警告
为什么看不到 fetch 请求或 React 渲染日志?
因为 WorkBuddy 不做自动拦截。想记录这些,必须手动集成:
- fetch:需包装原生
fetch,在then/catch中调用WorkBuddy.log(),并注意避免重复记录重试请求 - React 组件:可在
useEffect或错误边界componentDidCatch中调用WorkBuddy.log(),但不要在 render 函数里调用(会触发无限日志) - 数据库操作:只有在你封装的 DAO 层或 service 方法里显式调用
WorkBuddy.log()才会记录,ORM 自身日志(如 TypeORM 的queryLog)默认不接入
最容易被忽略的是日志采样率和本地缓存策略 —— 即使调用了 WorkBuddy.log(),若配置了 sampleRate: 0.1,90% 的日志会在发送前被丢弃;而离线期间产生的日志是否能回传,取决于 offlineStorage 的大小限制和清理逻辑。







