Only write debug messages to log file when LOG_LEVEL=debug
Info, warn, and error always go to the log file. Debug messages are only written to the file when LOG_LEVEL is set to debug, preventing verbose output in logs at higher levels. Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
This commit is contained in:
@@ -33,13 +33,18 @@ _log() {
|
|||||||
local upper; upper=$(echo "$level" | tr '[:lower:]' '[:upper:]')
|
local upper; upper=$(echo "$level" | tr '[:lower:]' '[:upper:]')
|
||||||
local line="[$ts] [$upper] $msg"
|
local line="[$ts] [$upper] $msg"
|
||||||
|
|
||||||
# Always write to log file if initialized (regardless of LOG_LEVEL)
|
|
||||||
[[ -n "$LOG_FILE" ]] && echo "$line" >> "$LOG_FILE"
|
|
||||||
|
|
||||||
# Print to stderr only if level meets configured threshold
|
|
||||||
local configured_level="${LOG_LEVEL:-$DEFAULT_LOG_LEVEL}"
|
local configured_level="${LOG_LEVEL:-$DEFAULT_LOG_LEVEL}"
|
||||||
local level_num; level_num=$(_log_level_num "$level")
|
local level_num; level_num=$(_log_level_num "$level")
|
||||||
local configured_num; configured_num=$(_log_level_num "$configured_level")
|
local configured_num; configured_num=$(_log_level_num "$configured_level")
|
||||||
|
|
||||||
|
# Log file: always write info/warn/error; debug only when LOG_LEVEL=debug
|
||||||
|
if [[ -n "$LOG_FILE" ]]; then
|
||||||
|
if [[ "$level" != "debug" ]] || (( level_num >= configured_num )); then
|
||||||
|
echo "$line" >> "$LOG_FILE"
|
||||||
|
fi
|
||||||
|
fi
|
||||||
|
|
||||||
|
# Console: only print if level meets configured threshold
|
||||||
(( level_num < configured_num )) && return 0
|
(( level_num < configured_num )) && return 0
|
||||||
|
|
||||||
case "$level" in
|
case "$level" in
|
||||||
|
|||||||
Reference in New Issue
Block a user