Files
scripts/lib/common/logging.sh
2026-02-09 21:51:52 -08:00

58 lines
1.3 KiB
Bash
Executable File

#!/usr/bin/env bash
# Logging functions for scripts
# Usage: source "$(dirname "$0")/logging.sh"
# Requires: colors.sh
# Log levels (higher number = more verbose)
LOG_LEVEL_ERROR=0
LOG_LEVEL_WARN=1
LOG_LEVEL_INFO=2
LOG_LEVEL_DEBUG=3
# Default log level
LOG_LEVEL="${LOG_LEVEL:-$LOG_LEVEL_INFO}"
# Log functions
log_info() {
if [ "$LOG_LEVEL" -ge "$LOG_LEVEL_INFO" ]; then
echo -e "${GREEN}[INFO]${NC} $1" >&2
fi
}
log_error() {
if [ "$LOG_LEVEL" -ge "$LOG_LEVEL_ERROR" ]; then
echo -e "${RED}[ERROR]${NC} $1" >&2
fi
}
log_warn() {
if [ "$LOG_LEVEL" -ge "$LOG_LEVEL_WARN" ]; then
echo -e "${YELLOW}[WARN]${NC} $1" >&2
fi
}
log_debug() {
if [ "$LOG_LEVEL" -ge "$LOG_LEVEL_DEBUG" ]; then
echo -e "${CYAN}[DEBUG]${NC} $1" >&2
fi
}
log_success() {
echo -e "${GREEN}${NC} $1" >&2
}
log_failure() {
echo -e "${RED}${NC} $1" >&2
}
log_step() {
echo -e "${BLUE}📋${NC} $1" >&2
}
log_heading() {
echo -e "\n${BOLD_CYAN}━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━${NC}" >&2
echo -e "${BOLD_CYAN}$1${NC}" >&2
echo -e "${BOLD_CYAN}━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━${NC}\n" >&2
}