高质量日志记录需严格分级、结构化上下文和模板化消息:一、按语义使用error/warn/debug级别并禁用自定义level;二、强制注入trace_id等结构化context字段且总大小≤10kb;三、通过预定义模板统一message格式,禁止字符串拼接。
☞☞☞AI 智能聊天, 问答助手, AI 智能搜索, 多模态理解力帮你轻松跨越从0到1的创作门槛☜☜☜

如果您在使用WorkBuddy记录日志时发现内容杂乱、关键信息缺失或难以筛选定位,则可能是由于日志未按统一标准分级与格式化。以下是实现高质量日志记录的三种核心路径:
一、严格遵循日志级别语义与触发条件
WorkBuddy的日志级别并非仅作视觉区分,而是直接关联采样策略、上报通道及告警阈值。错误使用level会导致关键问题被静默降级或丢弃。
1、仅在发生预期外异常且需人工介入时使用error级别,并确保传入完整错误对象(含stack、message、url)
2、当业务逻辑进入非预期分支但可自动恢复时,使用warn级别,并在message中明确标注恢复动作(如“用户登录失败,已触发短信验证码兜底流程”)
3、对高频调用接口(如每秒超10次的健康检查)禁止使用info,改用debug并配合sampleRate: 0.01配置,避免日志洪峰
4、禁用自定义level值(如'critical'、'fatal'),此类输入将被强制降级为error且不报错提示
二、强制注入结构化上下文字段
原始日志文本难以机器解析,必须通过context对象注入可检索的键值对,使每条日志具备唯一溯源能力。
1、在调用WorkBuddy.log()时,第二个参数必须为object类型context,至少包含{trace_id: string, user_id: string, task_id: string}
使用 draw.io(.drawio 格式)和 SVG 生成兼容 Microsoft Visio 的架构图。当用户需要以下任一场景时触发: - 用于 Visio 或技术文档的架构/系统/网络图 - 带连接标注的分层控制系统图 - 将 draw.io XML 转换为稳定、可嵌入的 SVG - 修复 Visio 或 draw.io 无法打开的故障排查类图表 - 任何需专业级布局且文本可编辑的图表
2、对数据库操作日志,额外注入{sql: string, duration_ms: number, rows_affected: number}
3、对前端页面行为日志,强制添加{page_url: string, referrer: string, viewport: string}
4、context对象总大小不得超过10KB,超限部分将被静默截断且无警告
三、实施模板化日志消息格式
自然语言描述易导致message字段语义漂移,需通过预定义模板确保同类事件输出格式绝对一致,支撑正则提取与聚合分析。
1、为每个服务模块创建独立模板文件(如task-engine.template),内容示例:"[TASK_START] uid={{user_id}} tid={{task_id}} type={{type}} retry={{retry_count}}"
2、在代码中调用时传入模板名与变量对象:WorkBuddy.log('task-engine.template', {user_id: 'U123', task_id: 'T456', type: 'export', retry_count: 0})
3、禁止在message中拼接动态字符串(如`'user_id:' + userId`),该写法会绕过模板校验且无法被日志平台结构化解析
4、所有模板中的双大括号变量名必须与传入对象的key完全一致且区分大小写,否则对应字段留空









