<?php
/**
* Parses log stream data for maintenance tasks.
*
* @param string $log_data The raw log data.
* @return array An array of maintenance task data.
*/
function parseMaintenanceLogs(string $log_data): array
{
$maintenance_tasks = [];
// Split the log data into individual lines.
$lines = explode("\n", $log_data);
foreach ($lines as $line) {
//Skip empty lines or lines starting with '#' (comments)
if (empty(trim($line)) || strpos(trim($line), '#') === 0) {
continue;
}
//Example log format: "YYYY-MM-DD HH:MM:SS - Task: <task_name> - Status: <status> - Details: <details>"
if (preg_match(
'/^(\d{4}-\d{2}-\d{2} \d{2}:\d{2}:\d{2}) - Task: (.*?) - Status: (.*?) - Details: (.*)$/',
$line,
$matches
)) {
$timestamp = $matches[1];
$task_name = trim($matches[2]);
$status = trim($matches[3]);
$details = trim($matches[4]);
$maintenance_tasks[] = [
'timestamp' => $timestamp,
'task_name' => $task_name,
'status' => $status,
'details' => $details,
];
}
}
return $maintenance_tasks;
}
//Example Usage
/*
$logData = <<<LOG
2023-10-27 10:00:00 - Task: Database Backup - Status: Success - Details: Backup completed successfully.
2023-10-27 10:05:00 - Task: Server Reboot - Status: Failed - Details: Reboot failed due to network issue.
# This is a comment
2023-10-27 10:10:00 - Task: Security Audit - Status: In Progress - Details: Scanning for vulnerabilities.
2023-10-27 10:15:00 - Task: Database Backup - Status: Success - Details: Backup completed successfully.
LOG;
$maintenanceData = parseMaintenanceLogs($logData);
print_r($maintenanceData);
*/
?>
Add your comment