<# .SYNOPSIS BTGO Telegram Bot - View Logs Script .DESCRIPTION Afiseaza logurile serviciului in timp real #> $ScriptDir = Split-Path -Parent $PSCommandPath $ProjectDir = Resolve-Path (Join-Path $ScriptDir "..\..\..") | Select-Object -ExpandProperty Path $LogDir = Join-Path $ProjectDir "logs" $StdoutLog = Join-Path $LogDir "telegram_bot_stdout.log" $StderrLog = Join-Path $LogDir "telegram_bot_stderr.log" function Show-Menu { Clear-Host Write-Host "" Write-Host ("=" * 80) -ForegroundColor Cyan Write-Host " BTGO TELEGRAM BOT - VIEWER LOGS" -ForegroundColor Yellow Write-Host ("=" * 80) -ForegroundColor Cyan Write-Host "" Write-Host "Logs directory: $LogDir" -ForegroundColor Cyan Write-Host "" Write-Host "Selecteaza optiune:" -ForegroundColor Yellow Write-Host "" Write-Host " 1. Vizualizare stdout (output normal)" Write-Host " 2. Vizualizare stderr (erori)" Write-Host " 3. Tail stdout (timp real - ultim 30 linii)" Write-Host " 4. Tail stderr (timp real - ultim 30 linii)" Write-Host " 5. Deschide director logs in Explorer" Write-Host " 6. Sterge toate logurile" Write-Host " 0. Iesire" Write-Host "" } function View-Stdout { Clear-Host Write-Host ("=" * 80) -ForegroundColor Cyan Write-Host "STDOUT LOG" -ForegroundColor Yellow Write-Host ("=" * 80) -ForegroundColor Cyan Write-Host "" if (Test-Path $StdoutLog) { Get-Content $StdoutLog } else { Write-Host "[INFO] Log-ul nu exista inca" -ForegroundColor Yellow } Write-Host "" Read-Host "Apasa Enter pentru a reveni la meniu" } function View-Stderr { Clear-Host Write-Host ("=" * 80) -ForegroundColor Cyan Write-Host "STDERR LOG" -ForegroundColor Yellow Write-Host ("=" * 80) -ForegroundColor Cyan Write-Host "" if (Test-Path $StderrLog) { Get-Content $StderrLog } else { Write-Host "[INFO] Log-ul nu exista inca" -ForegroundColor Yellow } Write-Host "" Read-Host "Apasa Enter pentru a reveni la meniu" } function Tail-Stdout { Clear-Host Write-Host ("=" * 80) -ForegroundColor Cyan Write-Host "STDOUT TAIL - TIMP REAL (Apasa Ctrl+C pentru a opri)" -ForegroundColor Yellow Write-Host ("=" * 80) -ForegroundColor Cyan Write-Host "" if (Test-Path $StdoutLog) { Get-Content $StdoutLog -Wait -Tail 30 } else { Write-Host "[INFO] Log-ul nu exista inca" -ForegroundColor Yellow Start-Sleep -Seconds 2 } } function Tail-Stderr { Clear-Host Write-Host ("=" * 80) -ForegroundColor Cyan Write-Host "STDERR TAIL - TIMP REAL (Apasa Ctrl+C pentru a opri)" -ForegroundColor Yellow Write-Host ("=" * 80) -ForegroundColor Cyan Write-Host "" if (Test-Path $StderrLog) { Get-Content $StderrLog -Wait -Tail 30 } else { Write-Host "[INFO] Log-ul nu exista inca" -ForegroundColor Yellow Start-Sleep -Seconds 2 } } function Open-LogsExplorer { if (Test-Path $LogDir) { explorer $LogDir } else { Write-Host "[INFO] Directorul logs nu exista" -ForegroundColor Yellow Start-Sleep -Seconds 2 } } function Clear-AllLogs { Write-Host "" Write-Host "[AVERTIZARE] Stergi TOATE logurile?" -ForegroundColor Yellow $confirm = Read-Host "Confirma (Y/N)" if ($confirm -eq "Y" -or $confirm -eq "y") { Remove-Item (Join-Path $LogDir "*.log") -Force -ErrorAction SilentlyContinue Write-Host "[OK] Loguri sterse" -ForegroundColor Green } else { Write-Host "[INFO] Anulat" -ForegroundColor Cyan } Start-Sleep -Seconds 2 } # Main loop do { Show-Menu $choice = Read-Host "Optiune (0-6)" switch ($choice) { "1" { View-Stdout } "2" { View-Stderr } "3" { Tail-Stdout } "4" { Tail-Stderr } "5" { Open-LogsExplorer } "6" { Clear-AllLogs } "0" { Write-Host "" Write-Host "Bye!" -ForegroundColor Green exit 0 } default { Write-Host "[EROARE] Optiune invalida!" -ForegroundColor Red Start-Sleep -Seconds 1 } } } while ($true)