'/var/log/php-error.log', 'Nginx Errors' => '/var/log/nginx/whatsapp-error.log', 'Nginx Access' => '/var/log/nginx/whatsapp-access.log', 'App System' => __DIR__ . '/logs/system.log', 'App Errors' => __DIR__ . '/logs/app_errors.log', 'Worker (hoy)' => __DIR__ . '/logs/worker-' . date('Y-m-d') . '.log', 'Scheduled' => __DIR__ . '/logs/scheduled_messages.log', 'Supervisor PHP-FPM' => '/var/log/supervisor/php-fpm-error.log', 'Supervisor Worker 0' => '/var/log/supervisor/worker-00-error.log', 'Supervisor Worker 1' => '/var/log/supervisor/worker-01-error.log', ]; $selected = $_GET['log'] ?? 'App Errors'; $lines = intval($_GET['lines'] ?? 100); $filter = trim($_GET['filter'] ?? ''); $content = ''; $selectedFile = $logFiles[$selected] ?? ''; if ($selectedFile && file_exists($selectedFile)) { // Leer últimas N líneas sin exec() $allLines = file($selectedFile, FILE_IGNORE_NEW_LINES | FILE_SKIP_EMPTY_LINES); if ($allLines === false) $allLines = []; $allLines = array_slice($allLines, -$lines); if ($filter) { $allLines = array_filter($allLines, function($line) use ($filter) { return stripos($line, $filter) !== false; }); } $content = implode("\n", $allLines); } elseif ($selectedFile) { $content = "(Archivo no existe: {$selectedFile})"; } ?>