您在此处:
使用日志检查器的示例
这里列举了一些您可以使用日志检查器诊断和解决问题的方式。
跟踪执行路径
情况:您已经在日志检查器中打开调试日志。什么是逐级浏览这些信息的方式?
- 在“执行日志”面板中,选择Executable (可执行)以筛选出所有不可执行的步骤,包含累积限制信息。
- 在“执行概览”面板中,单击“执行单位”选项卡可查看请求中其他类型操作的合计值。例如,可以查看 DML 操作的数量或按方法类型查看不同方法。
- 单击“限制”选项卡可查看此操作所用的调控器限制。
查看System.Debug报表
情况:您已将大量 System.Debug 语句添加到代码,以跟踪请求的进度。如何使用日志查看器找到它们?
- 在“执行日志”面板中,选择Filter (筛选器)。
- 在输入框内输入DEBUG(大写)。
在您的请求中,只有包含字符串 DEBUG 的行才会显示。
更新源代码
情况:在运行请求后,您会注意到调试日志中的 Apex 代码错误。编辑 Apex 代码最简单的方法是什么?
- 从源代码面板中选择一行代码。
- 单击Open (打开)。
该类或触发器将在新的日志查看器选项卡中打开。
跟踪请求中的 DML
情况:您的请求含有很多位于不同位置的 DML 语句。怎样才能知道请求中 DML 执行了多少次?
这里有用于深入调试日志的两种技术,可在请求期间检查实际执行的 DML:
- 在“执行日志”面板中,单击Filter (筛选器),然后输入 DML。请求中处于任何位置包含 DML 的所有项目都会显示,无论在事件中还是在详细信息中。
- 在“执行概览”面板中,单击“执行单位”选项卡,禁用除 DML 外所有其他类型的执行。按钮具有切换功能,每单击一次可以从列表中筛选出该类型的操作。再次单击以禁用筛选器。要只查看 DML,请单击方法、查询、工作流、标注、验证、触发器和 Visualforce 页面。
- DML 操作的详细信息显示了受影响的一类对象,以及执行的特定操作—插入、更新等等。还可以查看 DML 语句执行的次数、行数,等等。
- 如果在“执行单位”选项卡中单击 DML 请求项目,则“执行日志”会筛除请求的所有其他部分,只显示该 DML 语句。
您也可以用这些步骤查找和筛选查询。
评估 Visualforce 页面的性能
情况:您有一个 Visualforce 页面和一个执行 SOQL 查询的 Apex 控制器。您如何分析页面的性能并查明哪个代码单元使用最多时间?如何确定请求中执行了多少次查询?如何核实对调控器限制的接近程度?
- 在“堆栈树”面板中,查找 Visualforce 页面的名称。顶级的格式为 /apex/pagename。其下的第一个节点显示页面的实际执行。打开节点可查看何时初始化控制器。
- 继续打开节点可以查看对方法的调用和采用的每种方法所花费的时间。单击“堆栈树”面板中的某个项目,“执行日志”面板会显示该部分的调试日志,Source (源代码)面板也会刷新,显示相应的源代码,并且“变量”面板显示上下文中的变量。
- 在“执行概览”面板中,单击“执行单位”选项卡以查看代码的统计信息,统计信息包括以毫秒为单位的执行时间和以字节为单位的堆大小。“次数”列显示某些代码单位执行的次数。如果代码单位执行不止一次,更新总和、平均值、最大和最小运行次数。同样,如果执行查询不止一次,更新显示以汇总返回的行的合计数目。
您可以通过单击您想要从视图中忽略的代码单元所相应的底部上的按钮,筛选出代码单元。

- 单击“限制”选项卡,验证适用的限制,以及您的请求接近每项适用限制的程度。“可用的总量”列显示您的组织允许的每种操作类型的调控器限制。“请求总量”列显示执行的请求总数。“迄今为止所用的”列显示您在堆栈跟踪或执行日志中选择的执行时间点所用的请求数。
- 除了每种代码单元类型的执行总计时间线和百分比,单击“时间线”选项卡可查看代码单位类型分解的已执行代码单元的可视化显示。时间线可供您快速查明请求的哪些部分花费最长时间。选择摘要部分底部的时间间隔以增加或减少时间线中显示的期间。

在此示例中,数据库请求花费最多时间 (56.95%)。随后是 Visualforce 页面。Apex 代码花费的时间最少。此外,首先执行 Visualforce 页面,最后执行 Apex 代码,而数据库操作介于它们之间执行。
查看复杂过程
情况:您的过程复杂,并且包括几个 Apex 类和触发器、工作流和验证规则。什么是逐级浏览或筛选产生的调试日志的最佳方式?
- “堆栈”部分包含表示请求中所有顶级项目的执行路径的树结构。请使用此部分在各项目执行时查看其层次结构。
- 使用执行日志中的Filter (筛选)输入框。例如,如果您对触发专项事项感兴趣,单击Filter (筛选)并输入 trigger。调试日志中只有包含 trigger 一词的各行才会显示在执行日志部分。
- 通过选择This Frame (此范围)将“执行日志”选项卡的范围限制到具体所选的执行单元。例如,如果您在执行日志中选择包含
CODE_UNIT_STARTED的行,然后单击此框架,则执行日志仅显示请求中在CODE_UNIT_STARTED及其关联CODE_UNIT_ENDED之间发生的项目。

