Skip to main content

Shell Zi Jian logger

·124 words·1 min
 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