Log Levels: When to Use What
Understanding when and how to use different log levels appropriately in Triton logging for optimal debugging and monitoring.
Understanding Log Levels
Level
Use for
Examples
Don'ts
Real-World Example: E-commerce Order Processing
// Order processing batch - appropriate level usage
public class OrderProcessingBatch implements Database.Batchable<SObject> {
public void execute(Database.BatchableContext bc, List<Order> scope) {
Long startTime = System.now().getTime();
// Set up template for all order processing logs
Triton.instance.setTemplate(
Triton.makeBuilder()
.category(TritonTypes.Category.Apex)
.type(TritonTypes.Type.Backend)
.area(TritonTypes.Area.OpportunityManagement)
);
// INFO: Business milestone
Triton.instance.log(
Triton.instance.fromTemplate()
.level(TritonTypes.Level.INFO)
.summary('Processing order batch')
.details('batchSize=' + scope.size())
);
try {
for (Order order : scope) {
// DEBUG: Individual record processing
Triton.instance.addLog(
Triton.instance.fromTemplate()
.level(TritonTypes.Level.DEBUG)
.summary('Processing order')
.details('orderId=' + order.Id + ', status=' + order.Status)
.relatedObject(order.Id)
);
processOrder(order);
}
// INFO: Success milestone with duration
Triton.instance.log(
Triton.instance.fromTemplate()
.level(TritonTypes.Level.INFO)
.summary('Order batch completed')
.details('processed=' + scope.size())
.duration(System.now().getTime() - startTime)
);
} catch (Exception e) {
// ERROR: Critical failure
Triton.instance.log(
Triton.instance.fromTemplate()
.exception(e)
.relatedObjects(new Map<Id, Order>(scope).keySet())
);
throw e;
}
}
}Level-Specific Guidelines
ERROR Level
WARNING Level
INFO Level
DEBUG Level
FINE/FINER/FINEST Levels
Environment-Specific Recommendations
Development Environment
Staging Environment
Production Environment
Troubleshooting Mode
Performance Considerations
Best Practices Summary
Last updated