1. <?php
  2. /**
  3. * Formats log streams for internal tooling with synchronous execution.
  4. *
  5. * @param array $logData Array of log entries. Each entry should be an associative array.
  6. * @param string $logLevel Log level (e.g., 'INFO', 'WARNING', 'ERROR').
  7. * @return string Formatted log string.
  8. */
  9. function formatLogStream(array $logData, string $logLevel): string
  10. {
  11. $formattedLog = '';
  12. foreach ($logData as $entry) {
  13. // Validate log entry structure
  14. if (!is_array($entry) || !isset($entry['timestamp']) || !isset($entry['level']) || !isset($entry['message'])) {
  15. continue; // Skip invalid entries
  16. }
  17. $timestamp = $entry['timestamp'];
  18. $level = $entry['level'];
  19. $message = $entry['message'];
  20. // Format the log entry
  21. $formattedLog .= sprintf("[%s] %s - %s\n", $timestamp, $level, $message);
  22. }
  23. return $formattedLog;
  24. }
  25. /**
  26. * Example Usage (for testing)
  27. */
  28. /*
  29. $logData = [
  30. ['timestamp' => date('Y-m-d H:i:s'), 'level' => 'INFO', 'message' => 'Application started'],
  31. ['timestamp' => date('Y-m-d H:i:s'), 'level' => 'WARNING', 'message' => 'Low disk space'],
  32. ['timestamp' => date('Y-m-d H:i:s'), 'level' => 'ERROR', 'message' => 'Database connection failed'],
  33. ['timestamp' => date('Y-m-d H:i:s'), 'level' => 'INFO', 'message' => 'User logged in']
  34. ];
  35. $logLevel = 'INFO';
  36. $formattedOutput = formatLogStream($logData, $logLevel);
  37. echo $formattedOutput;
  38. */
  39. ?>

Add your comment