6

我写了一个简单的程序,想在运行代码时看到输出。当我在 force.com IDE 中使用“匿名执行 apex 代码”命令运行它时,我会得到很多不需要的结果,而我只需要 system.debug 语句。我可以使用记事本或excel,但似乎应该有一种直接的方式(本机或工具)。有什么建议吗?

谢谢,

埃尔诺布尔

代码

public with sharing class Aa_playground {



 public static void listExp(){
    List<Integer> x = new List<Integer>();
    x.add(1212);
    for (Integer i = 0; i < x.size(); i++){
        System.debug(x[i]);
    }

}
} 

输出

Anonymous execution was successful.

24.0     APEX_CODE,DEBUG;APEX_PROFILING,INFO;CALLOUT,INFO;DB,INFO;VALIDATION,INFO;WORKFLOW,INFO
Execute Anonymous: Aa_playground.listExp();
13:40:52.037 (37218000)|EXECUTION_STARTED
13:40:52.037 (37228000)|CODE_UNIT_STARTED|[EXTERNAL]|execute_anonymous_apex
13:40:52.037 (37634000)|METHOD_ENTRY|[1]|01pQ000000062u5|Aa_playground.Aa_playground()
13:40:52.037 (37726000)|METHOD_EXIT|[1]|Aa_playground
13:40:52.037 (37740000)|METHOD_ENTRY|[1]|01pQ000000062u5|Aa_playground.listExp()
13:40:52.037 (37920000)|USER_DEBUG|[9]|DEBUG|1212
13:40:52.037 (37947000)|METHOD_EXIT|[1]|01pQ000000062u5|Aa_playground.listExp()
13:40:52.594 (37979000)|CUMULATIVE_LIMIT_USAGE
13:40:52.594|LIMIT_USAGE_FOR_NS|(default)|
  Number of SOQL queries: 0 out of 100
  Number of query rows: 0 out of 50000
  Number of SOSL queries: 0 out of 20
  Number of DML statements: 0 out of 150
  Number of DML rows: 0 out of 10000
  Number of script statements: 5 out of 200000
  Maximum heap size: 0 out of 6000000
  Number of callouts: 0 out of 10
  Number of Email Invocations: 0 out of 10
  Number of fields describes: 0 out of 100
  Number of record type describes: 0 out of 100
  Number of child relationships describes: 0 out of 100
  Number of picklist describes: 0 out of 100
  Number of future calls: 0 out of 10

13:40:52.594|CUMULATIVE_LIMIT_USAGE_END

13:40:52.038 (38005000)|CODE_UNIT_FINISHED|execute_anonymous_apex
13:40:52.038 (38011000)|EXECUTION_FINISHED
4

3 回答 3

8

我想我会在答案中总结我找到的一些信息。

  1. 下载记事本++ v6.1+
  2. 在 Notepad++ 中,打开(或粘贴)您的调试日志文件。
  3. 从菜单中,选择宏 > 开始录制。
  4. 按 CTRL-H(或搜索和替换的快捷方式)。
  5. 复制此正则表达式^(?!.+USER_DEBUG.+$).*$并将其粘贴到“查找内容:”文本框中。
  6. 确保搜索模式设置为正则表达式并且“替换为:”文本框为空白。
  7. 出现结果对话框时,单击“全部替换”和“确定”。
  8. 复制此正则表达式(?m)^([ \t\s]*|;.*)(\r?\n|$)并将其粘贴到“查找内容:”文本框中。
  9. 确保搜索模式设置为正则表达式并且“替换为:”文本框为空白。
  10. 单击“全部替换”和“确定”。然后,关闭“搜索和替换”对话框。
  11. 从菜单中,选择宏 > 停止录制。然后选择宏 > 保存当前录制的宏。
  12. 输入新宏的名称,并可选择设置快捷键。然后单击“确定”。

要执行您的新宏,请从菜单中选择宏,然后单击您的宏名称。

正则表达式的功劳归于 nivyaj(见问题评论)。Daniel Ballinger 的博客文章也很有帮助。

于 2012-04-25T18:57:11.363 回答
5

这可能是不好的做法,但我过去所做的是将 APEX_CODE 的日志级别设置为 INFO 并将调试消息的日志级别也设置为 info

System.debug(Logginglevel.INFO, 'Debug Message with INFO level');
于 2012-07-05T23:27:49.383 回答
1

您可以通过将级别设置为来消除这些LIMIT_USAGE_FOR_NS消息。但是,您无法摆脱AND消息并仍然获得消息,因为这些消息高于过滤器中的消息。很遗憾。Apex ProfilingNoneMETHOD_ENTRYMETHOD_EXITUSER_DEBUGSystem.debug()

于 2012-04-24T19:34:48.670 回答