Debug Log — Overview & Limits

DEX455 - Apex 调试与异常处理完全指南

📄 第 428 页 🎬 视频课程

课程章节介绍

同学们,咱们今天来聊一聊 Salesforce 里特别实用的一个功能——,调试日志,。你可以把它想象成 Salesforce 平台上的“黑匣子”,它会帮我们记录下系统背后发生的事情,当程序出错、或者你想搞清楚某个操作到底做了什么的时候,翻翻日志就明白了。 那日志都记录些啥呢?它主要关注这么几块: - ,数据库的变化,:比如你插入了一条客户记录,修改了某个字段,这些操作都会被记下来。 - ,HTTP 调用,:如果你的代码去调用外部的接口,比如请求天气数据、发送短信,这种对外访问的请求和响应也会被记录。 - ,Apex 代码里的错误,:这个是调试时最重要的部分,代码如果遇到异常、报错,会原原本本写进日志,方便你定位问题。 - ,系统资源的使用情况,:比如一段代码执行花了多少时间、消耗了多少 CPU 和内存,这样你就能分析性能瓶颈。 - ,自动化流程,:像触发器、流程、工作流规则这些自动化工具的运行过程,也会出现在日志里。 不过呢,日志可不是能随便无限制记录的,它有几条重要的限制,你一定得知道,不然可能遇到“日志丢了”或者“打不开了”的情况。 ,第一条,每条日志最大只能是 20 MB。, 如果一条日志太大了,系统会自动从日志的开头删除旧的行,只保留末尾 20 MB 的内容,所以你看到的可能不完整。这就像一本书太厚,只能撕掉前面几页给你看结尾。 ,第二条,日志保存的时间有硬性规定。, - 在“调试日志”页面里,我们手动查看的日志只保留 ,24 小时,,超过一天就自动清除了。所以查问题要趁热。 - 如果你在“监控”视图里看日志,数据会保留 ,7 天,,稍微宽松一点,但同样不是永久的。 ,第三条,和日志生成量有关的红线。, Salesforce 限制了每 15 分钟内日志的生成量,不能超过 ,1,000 MB,。如果超过了,系统就会把你所有的跟踪标志都禁用——也就是接下来不再给你生成任何日志了。而且,如果你累积的日志总量已经达到 1,000 MB,连添加或者修改跟踪标志都不允许了,等于被“关禁闭”,这时候必须等数据量降下来才能重新启用日志。所以千万别让代码在循环里疯狂打日志,那很容易触碰到红线。 这里补充一下,跟踪标志的关系,: 你在用户身上设置的跟踪标志,会决定日志记录的详细程度,比如只记错误,还是连每一步执行的细节都记。而类或触发器上也可以单独设置跟踪标志,它比用户级别的日志级别优先级更高——也就是说,如果类上设了更详细的记录级别,那用户级设的简单级别就没用了,会按类上的来。但是注意,,类/触发器上的跟踪标志只是覆盖日志级别,并不会单独触发日志生成,,谁来触发日志还得看用户上的跟踪标志有没有开启。 最后,有两点需要提醒:日志并不是万能的,有些东西它压根不记录。 - ,基于时间的工作流操作,(Time-dependent workflow actions),也就是那些将来某个时间点才执行的工作流动作,在到达执行时间之前的等待过程是看不到日志的。 - ,Visualforce 邮件模板的控制器,,当你用 Visualforce 模板给客户发邮件时,控制它显示内容的 Apex 代码部分,也不会出现在调试日志里。 好了,这节课把调试日志能做什么、有哪些限制都讲清楚了,下次当你排查问题的时候,就知道从哪里啃这块“黑匣子”了。有什么疑问随时提。

关键词

Apex Salesforce Developer Guide