queueLog method
Queue a log entry for syncing.
Implementation
void queueLog(LogEntry log) {
if (!config.enabled || !config.isValid) return;
// Check minimum level filter
if (config.syncMinimumLevel != null) {
final levelOrder = ['verbose', 'debug', 'info', 'warning', 'error', 'fatal'];
final minIndex = levelOrder.indexOf(config.syncMinimumLevel!.toLowerCase());
final logIndex = levelOrder.indexOf(log.level.name.toLowerCase());
if (logIndex < minIndex) return;
}
// Priority queue for errors
final isError = log.level.name.toLowerCase() == 'error' || log.level.name.toLowerCase() == 'fatal';
if (isError && config.prioritizeErrors) {
_priorityLogs.add(log);
// Trigger immediate sync for errors
_flushNow();
} else {
_pendingLogs.add(log);
// Enforce max queue size
while (_pendingLogs.length > config.maxQueueSize) {
_pendingLogs.removeFirst();
}
}
// Check if batch threshold reached
if (_pendingLogs.length >= config.batchSize) {
_flushNow();
}
}