Files
2025-09-05 15:40:18 +08:00

76 lines
1.5 KiB
Bash

#!/usr/bin/env false
readonly LOGLEVEL_DEBUG=0
readonly LOGLEVEL_INFO=1
readonly LOGLEVEL_WARN=2
readonly LOGLEVEL_ERROR=3
__logparselevel() {
if [ -z "${LOG_LEVEL:-}" ]; then
echo $LOGLEVEL_INFO
elif [ "${LOG_LEVEL}" = "DEBUG" ]; then
echo $LOGLEVEL_DEBUG
elif [ "${LOG_LEVEL}" = "INFO" ]; then
echo $LOGLEVEL_INFO
elif [ "${LOG_LEVEL}" = "WARN" ]; then
echo $LOGLEVEL_WARN
elif [ "${LOG_LEVEL}" = "ERROR" ]; then
echo $LOGLEVEL_ERROR
else
echo $LOGLEVEL_INFO
fi
}
__logprintraw() {
local formated_msg="$1"
>&2 echo "${formated_msg}"
}
__logprint() {
local level_fmt="$1"
local msg="$2"
local curr_time; curr_time="[$(date)]"
local formated_msg="${curr_time}${level_fmt}: ${msg}"
__logprintraw "${formated_msg}"
}
logcmd() {
if [ "$(__logparselevel)" -le "$LOGLEVEL_DEBUG" ]; then
{ "$@" ;}
else
{ "$@" >/dev/null 2>&1;}
fi
}
logd() {
if [ "$(__logparselevel)" -le "$LOGLEVEL_DEBUG" ]; then
__logprint "[DEBUG]" "$1"
fi
}
logdraw() {
if [ "$(__logparselevel)" -le "$LOGLEVEL_DEBUG" ]; then
__logprint "[DEBUG]" "raw print:"
__logprintraw "$1"
fi
}
logi() {
if [ "$(__logparselevel)" -le "$LOGLEVEL_INFO" ]; then
__logprint "[INFO ]" "$1"
fi
}
logw() {
if [ "$(__logparselevel)" -le "$LOGLEVEL_WARN" ]; then
__logprint "[WARN ]" "$1"
fi
}
loge() {
if [ "$(__logparselevel)" -le "$LOGLEVEL_ERROR" ]; then
__logprint "[ERROR]" "$1"
fi
}