2012-09-24 23 views
1

我正在编写一个读取数据库和处理记录的Apex程序。每次处理记录时,我都想输出一条消息。目前我正在使用System.Debug来做到这一点,但是调试日志非常混乱,看起来并不是正确的方法。如何在Salesforce中输出?

还有哪些其他方法可以在SalesForce中生成屏幕或日志文件输出?

回答

1

继续使用System.Debug()但是当你只想查看输出消息,只是DEBUG过滤。否则唯一的选择是创建一个视图,然后比它的价值更加混乱。

+1

日志的另一个选项是在每个调用中设置LoggingLevel。例如。 'System.Debug(LoggingLevel.Info,'Testing');'。然后,您可以将日志记录级别降低到信息并仍然可以看到您的消息。 –

+0

我通常会加上一个前缀“---”(三个破折号)来查找我的输出。 –

+0

调试消息已经以DEBUG作为前缀,因此区分大小写的过滤器只能工作 –

0

请在设置>>管理设置>>监控>>调试日志下打开原始格式的日志。 受监控用户转至筛选器并启用所有筛选级别。现在使用先端代码给出

System.debug('StackOverflow >>1234'+ e.getMessage) 

和搜索的详细调试日志的StackOverflow >> 1234的唯一消息。也可能发生这样的情况:您的system.debug可能没有在特定的调试日志中执行过,所以不要忘记检查所有最近的调试日志。 :)

0

你可以考虑创建自己的Logging__c对象。并为每个记录处理创建一个记录。尽管如此,你必须富有创造力才能解决州长的限制。

如果在处理每条记录之间输出消息并不是必需的,则可以在处理继续时构建Logging__c记录的集合,然后定期插入它们,或者在处理过程中出现异常。

注意,如果定期将它们插入,你还是要确保工作不那么大,你要与你正在做的工作,处理一起打的150的DML限制。另外,如果将所有记录存储在处理结束时插入,请记住堆大小为6MB。

或者,看看批量的Apex http://www.salesforce.com/us/developer/docs/apexcode/Content/apex_batch_interface.htm

这允许你创建一个类来处理异步块处理作业。您可以设置一次处理的记录数。所以,你可以设置这个小(约20),然后为每个作业记录进行留的200批次的Apex DML限制之内,则您可以实时查看进度监控记录 _c记录插入Logging_ Ç记录。