jira/deploy/logs.sh
vickytechkey a4687eaf39
All checks were successful
Deploy Plane Project Tracker / Deploy to cisystem (push) Successful in 6m47s
feat(logging): add comprehensive server logs for frontend actions and backend API requests
2026-11-06 18:00:17 +05:30

93 lines
3.7 KiB
Bash

#!/usr/bin/env bash
set -e
# ==============================================================================
# Plane Interactive Log Diagnostics Tool
# Target directory: /home/ubuntu/plane
# ==============================================================================
cd /home/ubuntu/plane 2>/dev/null || cd "$(dirname "$0")"
ACTION="${1:-help}"
case "$ACTION" in
all)
echo "==> Streaming ALL live container logs (Ctrl+C to stop)..."
docker compose logs -f --tail=50
;;
backend|api)
echo "==> Streaming Backend API logs (Every Request, Status, User Action & DB Event)..."
if [ -f "logs/api/plane-requests.log" ]; then
echo "--- Following logs/api/plane-requests.log + logs/api/plane-app.log ---"
tail -f -n 50 logs/api/plane-requests.log logs/api/plane-app.log 2>/dev/null || tail -f -n 50 logs/api/plane-requests.log
else
docker compose logs -f --tail=50 api
fi
;;
frontend|web)
echo "==> Streaming Frontend Web & Access logs..."
if [ -f "logs/web/web-access.log" ]; then
echo "--- Following logs/web/web-access.log ---"
tail -f -n 50 logs/web/web-access.log
else
docker compose logs -f --tail=50 web
fi
;;
client)
echo "==> Streaming Frontend Client-Side Browser Logs (Errors, Unhandled Rejections, UI Events)..."
if [ -f "logs/api/plane-client.log" ]; then
echo "--- Following logs/api/plane-client.log ---"
tail -f -n 50 logs/api/plane-client.log
else
echo "Waiting for client-side events in logs/api/plane-client.log..."
touch logs/api/plane-client.log 2>/dev/null || true
tail -f -n 50 logs/api/plane-client.log 2>/dev/null || docker compose logs -f --tail=50 api | grep "plane.client"
fi
;;
error|errors)
echo "==> Streaming error logs..."
if [ -f "logs/api/plane-error.log" ]; then
echo "--- Persistent error log file: logs/api/plane-error.log ---"
tail -f -n 50 logs/api/plane-error.log
else
docker compose logs -f --tail=50 api | grep -iE "error|exception|traceback|fail|500|502"
fi
;;
proxy)
echo "==> Streaming Proxy logs..."
if [ -f "logs/proxy/proxy-access.log" ]; then
tail -f -n 50 logs/proxy/proxy-access.log
else
docker compose logs -f --tail=50 proxy
fi
;;
worker)
echo "==> Streaming Celery worker background task logs..."
docker compose logs -f --tail=50 worker beat-worker
;;
files|list)
echo "==> Persistent log files on host ($(pwd)/logs):"
find logs -type f -exec ls -lh {} + 2>/dev/null || echo "No persistent log files found yet."
;;
tail)
TARGET="${2:-api}"
echo "==> Tailing container $TARGET..."
docker compose logs -f --tail=100 "$TARGET"
;;
help|*)
echo "=========================================================="
echo " Plane Log & Action Diagnostics Tool"
echo "=========================================================="
echo "Usage:"
echo " ./logs.sh frontend - Stream frontend web access & static bundle logs"
echo " ./logs.sh backend - Stream backend API request & action logs"
echo " ./logs.sh client - Stream browser-side frontend JS errors & crashes"
echo " ./logs.sh error - Stream all error stacktraces and exceptions"
echo " ./logs.sh proxy - Stream Caddy reverse proxy ingress logs"
echo " ./logs.sh worker - Stream background Celery workers"
echo " ./logs.sh all - Stream logs from all Plane containers simultaneously"
echo " ./logs.sh files - List all persistent log files on server disk"
echo " ./logs.sh tail <svc> - Tail a specific docker service (e.g. ./logs.sh tail api)"
echo "=========================================================="
;;
esac