Batch Logging
This article demonstrates some common approaches to batch logging.
Basic Error Handling
public class LeadsBatch implements Database.Batchable<sObject>, Database.Stateful {
private String query ='';
private Triton logger = Triton.instance;
public LeadsBatch(String leadQuery) {
this.query = leadQuery;
}
public Database.QueryLocator start(Database.BatchableContext bc) {
return Database.getQueryLocator(query);
}
public void execute(Database.BatchableContext bc, List<Lead> leads) {
for(Lead l : leads){
try {
LeadProcessingResult result = LeadService.getQualificationScore(l);
if(result.isSuccess) {
l.Score__c = result.qualificationScore;
}
} catch(Exception e){
this.logger.addError(TritonTypes.Area.LeadQualification, e);
}
}
try {
update leads;
} catch(Exception e){
this.logger.addError(TritonTypes.Area.LeadQualification, e);
}
}
public void finish(Database.BatchableContext bc){
this.logger.flush();
}
}Grouping Logs From Multiple Iterations
Last updated