<?php
/**
* Formats log streams for internal tooling with synchronous execution.
*
* @param array $logData Array of log entries. Each entry should be an associative array.
* @param string $logLevel Log level (e.g., 'INFO', 'WARNING', 'ERROR').
* @return string Formatted log string.
*/
function formatLogStream(array $logData, string $logLevel): string
{
$formattedLog = '';
foreach ($logData as $entry) {
// Validate log entry structure
if (!is_array($entry) || !isset($entry['timestamp']) || !isset($entry['level']) || !isset($entry['message'])) {
continue; // Skip invalid entries
}
$timestamp = $entry['timestamp'];
$level = $entry['level'];
$message = $entry['message'];
// Format the log entry
$formattedLog .= sprintf("[%s] %s - %s\n", $timestamp, $level, $message);
}
return $formattedLog;
}
/**
* Example Usage (for testing)
*/
/*
$logData = [
['timestamp' => date('Y-m-d H:i:s'), 'level' => 'INFO', 'message' => 'Application started'],
['timestamp' => date('Y-m-d H:i:s'), 'level' => 'WARNING', 'message' => 'Low disk space'],
['timestamp' => date('Y-m-d H:i:s'), 'level' => 'ERROR', 'message' => 'Database connection failed'],
['timestamp' => date('Y-m-d H:i:s'), 'level' => 'INFO', 'message' => 'User logged in']
];
$logLevel = 'INFO';
$formattedOutput = formatLogStream($logData, $logLevel);
echo $formattedOutput;
*/
?>
Add your comment