processors[] = $processor; } } public function onEmit(ReadWriteLogRecord $record, ?ContextInterface $context = null): void { foreach ($this->processors as $processor) { $processor->onEmit($record, $context); } } /** * Returns `true` if all processors shut down successfully, else `false` * Subsequent calls to `shutdown` are a no-op. */ public function shutdown(?CancellationInterface $cancellation = null): bool { $result = true; foreach ($this->processors as $processor) { if (!$processor->shutdown($cancellation)) { $result = false; } } return $result; } /** * Returns `true` if all processors flush successfully, else `false`. */ public function forceFlush(?CancellationInterface $cancellation = null): bool { $result = true; foreach ($this->processors as $processor) { if (!$processor->forceFlush($cancellation)) { $result = false; } } return $result; } }