X-Git-Url: http://git.plutz.net/?p=cgilite;a=blobdiff_plain;f=logging.sh;fp=logging.sh;h=31bb24d3c4d3b9abbcb7bb175bcd455d5a078d2c;hp=0000000000000000000000000000000000000000;hb=e2678dc719c2dcda2de9a6079ac63837681e1a26;hpb=d0c60cf4f8431e100a0a326931388e6d11a5fd56 diff --git a/logging.sh b/logging.sh new file mode 100755 index 0000000..31bb24d --- /dev/null +++ b/logging.sh @@ -0,0 +1,32 @@ +#!/bin/sh + +# LOGLEVEL 1: Crash condition +# LOGLEVEL 2: Unexpected condition +# LOGLEVEL 3: Failed action (i.e. due to config error) +# LOGLEVEL 4: Debug + +[ -n "$include_logging" ] && return 0 +include_logging="$0" + +LOGLEVEL="${LOGLEVEL:-3}" +LOGFILE="${LOGFILE:-/dev/stderr}" + +logmsg(){ + local ll="${1:-3}" + shift 1 + if [ "$ll" -le "$LOGLEVEL" -a "$#" -gt 0 ]; then + printf %s\\n "$*" >>"${LOGFILE}" + elif [ "$ll" -le "$LOGLEVEL" ]; then + tee -a "${LOGFILE}" + elif [ ! "$#" -gt 0 ]; then + cat + fi +} + +die(){ + [ "$#" -gt 0 ] && logmsg 1 "$@" + exit 1 +} +panic(){ logmsg 2 "$@"; } +error(){ logmsg 3 "$@"; } +debug(){ logmsg 4 "$@"; }