86 lines
1.8 KiB
Bash
86 lines
1.8 KiB
Bash
#!/usr/bin/env false
|
|
|
|
readonly LOGLEVEL_VERBOSE=0
|
|
readonly LOGLEVEL_DEBUG=1
|
|
readonly LOGLEVEL_INFO=2
|
|
readonly LOGLEVEL_WARN=3
|
|
readonly LOGLEVEL_ERROR=4
|
|
|
|
__logparselevel() {
|
|
if [ -z "${LOG_LEVEL:-}" ]; then
|
|
echo $LOGLEVEL_INFO
|
|
elif [ "${LOG_LEVEL}" = "VERBOSE" ]; then
|
|
echo $LOGLEVEL_VERBOSE
|
|
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
|
|
echo "+ $*"
|
|
{ "$@" ;}
|
|
else
|
|
{ "$@" >/dev/null 2>&1;}
|
|
fi
|
|
}
|
|
|
|
log_expand_if_verbose() {
|
|
if [ "$(__logparselevel)" -le "$LOGLEVEL_VERBOSE" ]; then
|
|
printf "%s" "$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
|
|
}
|