diff --git a/lib/logging.sh b/lib/logging.sh index 1768443..549f533 100644 --- a/lib/logging.sh +++ b/lib/logging.sh @@ -28,21 +28,20 @@ init_logging() { _log() { local level="$1"; shift local msg="$*" - local configured_level="${LOG_LEVEL:-$DEFAULT_LOG_LEVEL}" - - local level_num; level_num=$(_log_level_num "$level") - local configured_num; configured_num=$(_log_level_num "$configured_level") - - (( level_num < configured_num )) && return 0 local ts; ts=$(date -u +"%d/%m/%Y %H:%M:%S") local upper; upper=$(echo "$level" | tr '[:lower:]' '[:upper:]') local line="[$ts] [$upper] $msg" - # Always write to log file if initialized + # Always write to log file if initialized (regardless of LOG_LEVEL) [[ -n "$LOG_FILE" ]] && echo "$line" >> "$LOG_FILE" - # Print to stderr based on level + # Print to stderr only if level meets configured threshold + local configured_level="${LOG_LEVEL:-$DEFAULT_LOG_LEVEL}" + local level_num; level_num=$(_log_level_num "$level") + local configured_num; configured_num=$(_log_level_num "$configured_level") + (( level_num < configured_num )) && return 0 + case "$level" in error) echo "${C_RED}${line}${C_RESET}" >&2 ;; warn) echo "${C_YELLOW}${line}${C_RESET}" >&2 ;;