Search code examples
salesforceapex-code

How to get just the system.debug output when executing code?


I wrote a simple program and want to see the output when I run the code. When I run it in the force.com IDE using the 'Annoymously execute apex code'command I get a lot of unwanted results, when I only want the system.debug statements. I could do use notepad or excel, but it seems like there should be a direct way (either native, or tool). Any advice?

Thanks,

el-noobre

code

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]);
    }

}
} 

output

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

Solution

  • I figured I'd sum up some of the info I found, in an answer.

    1. Download Notepad++ v6.1+
    2. In Notepad++, open (or paste in) your debug log file.
    3. From the Menu, select Macro > Start Recording.
    4. Press CTRL-H (or the shortcut for Search and Replace).
    5. Copy this regular expression ^(?!.+USER_DEBUG.+$).*$ and paste it in the "Find What:" textbox.
    6. Make sure the Search Mode is set to Regular Expression and that the "Replace With:" textbox is blank.
    7. Click "Replace All" and "Ok" when the result dialog apprears.
    8. Copy this regular expression (?m)^([ \t\s]*|;.*)(\r?\n|$) and paste it in the "Find What:" textbox.
    9. Make sure the Search Mode is set to Regular Expression and that the "Replace With:" textbox is blank.
    10. Click "Replace All" and "Ok". Then, close the Search and Replace dialog.
    11. From the Menu, select Macro > Stop Recording. Then select Macro > Save Current Recorded Macro.
    12. Enter a Name for your new macro, and optionally set the shortcut keys. Then click "Ok".

    To execute your new macro, select Macro from the menu then click your macro name.

    Credit for the regular expressions goes to nivyaj (see question comments). Daniel Ballinger's blog post was helpful as well.