1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
|
#!/bin/bash
# Set desired log level (1=WARN, 2=INFO, 3=DEBUG)
LOG_LEVEL=${LOG_LEVEL:-2}
log() {
local level_name=$1
local level_value=$2
shift 2
if [ "$LOG_LEVEL" -ge "$level_value" ]; then
# Use stderr for logs to keep stdout clean for data
printf "[%-5s] %s\n" "$level_name" "$*" >&2
fi
}
# Helper aliases
warn() { log "WARN" 1 "$@"; }
info() { log "INFO" 2 "$@"; }
debug() { log "DEBUG" 3 "$@"; }
# --- Usage Examples ---
info "Starting the process..."
debug "Connecting to database at 127.0.0.1"
if [ ! -f "config.cfg" ]; then
warn "Config file missing, using defaults."
fi
|