33 lines
1.3 KiB
Bash
33 lines
1.3 KiB
Bash
#!/usr/bin/env bash
|
|
set -Eeuo pipefail
|
|
LINES="${1:-500}"
|
|
LEVEL="${2:-info}"
|
|
case "$LINES" in ''|*[!0-9]* ) LINES=500 ;; esac
|
|
case "$LEVEL" in debug|info|notice|warning|err) ;; * ) LEVEL=info ;; esac
|
|
|
|
strip(){ sed -E 's/^.*\]:[[:space:]]*//'; }
|
|
|
|
app_logs=""
|
|
if out="$(journalctl -t snowflake-proxy -p "$LEVEL" -n $((LINES*3)) -o short-iso --no-pager 2>/dev/null)"; then
|
|
app_logs="$out"
|
|
elif out="$(journalctl _COMM=snowflake-proxy -p "$LEVEL" -n $((LINES*3)) -o short-iso --no-pager 2>/dev/null)"; then
|
|
app_logs="$out"
|
|
fi
|
|
|
|
sys_lines=""
|
|
if out="$(journalctl -u snowflake-proxy.service -p "$LEVEL" -n $((LINES*6)) -o short-iso --no-pager 2>/dev/null | grep -E ' (Started|Stopped|Stopping|Restarted|Reloaded|Failed) snowflake-proxy\.service|snowflake-proxy\.service: Consumed ')"; then
|
|
sys_lines="$out"
|
|
fi
|
|
|
|
combined="$(printf "%s\n%s\n" "${app_logs:-}" "${sys_lines:-}" | sed '/^[[:space:]]*$/d' | sort)"
|
|
if [[ -n "$combined" ]]; then
|
|
echo "$combined" | tail -n "$LINES" | strip
|
|
exit 0
|
|
fi
|
|
|
|
if out="$(systemctl status snowflake-proxy --no-pager -l 2>/dev/null | grep -E ' snowflake-proxy\[[0-9]+\]:| (Started|Stopped|Stopping|Restarted|Reloaded|Failed) snowflake-proxy\.service|snowflake-proxy\.service: Consumed ')"; then
|
|
echo "$out" | tail -n "$LINES" | strip
|
|
exit 0
|
|
fi
|
|
|
|
exit 0 |