Files
MediaCollectorLibary/check_sync_logs.php
Lars Behrends ca2d3a6960 ...
2025-10-18 22:03:30 +02:00

97 lines
2.9 KiB
PHP

<?php
/**
* Sync Log Viewer
*
* This script helps you view recent sync logs and check the status of your sync operations.
* Run this script to see what happened during the last sync operations.
*/
// Check if we're in the right directory
if (!file_exists('app/Services/BaseSyncService.php')) {
echo "Error: Please run this script from the project root directory.\n";
exit(1);
}
require_once 'vendor/autoload.php';
// Simple database connection for viewing sync logs
try {
$pdo = new PDO('sqlite:database/database.sqlite');
$pdo->setAttribute(PDO::ATTR_ERRMODE, PDO::ERRMODE_EXCEPTION);
echo "=== SYNC LOG VIEWER ===\n\n";
// Get recent sync logs
$stmt = $pdo->prepare("
SELECT sl.*, s.display_name as source_name
FROM sync_logs sl
JOIN sources s ON sl.source_id = s.id
ORDER BY sl.created_at DESC
LIMIT 10
");
$stmt->execute();
$logs = $stmt->fetchAll(PDO::FETCH_ASSOC);
if (empty($logs)) {
echo "No sync logs found. Run a sync operation first.\n";
exit(0);
}
echo "RECENT SYNC OPERATIONS:\n";
echo str_repeat("-", 80) . "\n";
foreach ($logs as $log) {
$status = strtoupper($log['status']);
$statusColor = match($log['status']) {
'completed' => '✅',
'failed' => '❌',
'running' => '🔄',
default => '❓'
};
echo "{$statusColor} {$log['source_name']} - {$status} - {$log['created_at']}\n";
echo " Type: {$log['sync_type']} | Processed: {$log['processed_items']} | New: {$log['new_items']} | Updated: {$log['updated_items']}\n";
if ($log['message']) {
echo " Message: {$log['message']}\n";
}
if ($log['errors']) {
$errors = json_decode($log['errors'], true);
if (is_array($errors)) {
echo " Errors: " . implode(', ', $errors) . "\n";
}
}
echo "\n";
}
// Check for log files
$logFiles = glob('logs/*.log');
if (!empty($logFiles)) {
echo "\nLOG FILES AVAILABLE:\n";
echo str_repeat("-", 80) . "\n";
// Sort by modification time, newest first
usort($logFiles, function($a, $b) {
return filemtime($b) - filemtime($a);
});
foreach (array_slice($logFiles, 0, 5) as $logFile) {
$size = filesize($logFile);
$modified = date('Y-m-d H:i:s', filemtime($logFile));
echo "📄 " . basename($logFile) . " ({$size} bytes) - {$modified}\n";
}
echo "\nTo view a specific log file, run: tail -f logs/filename.log\n";
} else {
echo "\nNo log files found yet. Log files are created during sync operations.\n";
}
} catch (Exception $e) {
echo "Error: " . $e->getMessage() . "\n";
echo "Make sure your database is set up correctly.\n";
exit(1);
}