Gemini
feat: add detailed logging
01d5a5d
raw
history blame
1.54 kB
#!/bin/bash
# Logging utilities for Second-Me scripts
# This file contains common logging functions that can be used by other scripts
# Color definitions
RED='\033[0;31m'
GREEN='\033[0;32m'
YELLOW='\033[1;33m'
BLUE='\033[0;34m'
MAGENTA='\033[0;35m'
CYAN='\033[0;36m'
GRAY='\033[0;90m'
BOLD='\033[1m'
NC='\033[0m' # No Color
# Get current timestamp
get_timestamp() {
date "+%Y-%m-%d %H:%M:%S"
}
# Log a message to the console with formatting
log() {
local message="$1"
local level="${2:-INFO}"
local color="${NC}"
case $level in
INFO) color="${BLUE}" ;;
SUCCESS) color="${GREEN}" ;;
WARNING) color="${YELLOW}" ;;
ERROR) color="${RED}" ;;
DEBUG) color="${GRAY}" ;;
SECTION) color="${BOLD}" ;;
STEP) color="${GRAY}" ;;
esac
echo -e "${GRAY}[$(get_timestamp)]${NC} ${color}[${level}]${NC} ${message}"
}
# Print formatted log messages with different levels
log_info() {
log "$1" "INFO"
}
log_success() {
log "$1" "SUCCESS"
}
log_warning() {
log "$1" "WARNING"
}
log_error() {
log "$1" "ERROR"
}
log_debug() {
log "$1" "DEBUG"
}
log_section() {
log "$1" "SECTION"
}
log_step() {
log "$1" "STEP"
}
# Initialize logging
init_logging() {
# Check if we should enable debug output
if [ "${DEBUG_MODE}" = "true" ]; then
log_debug "Debug logging enabled"
fi
# Set up trap for cleanup if needed
if [ "${1}" = "trap_cleanup" ] && [ -n "${2}" ]; then
trap "${2}" INT
fi
}