diff options
Diffstat (limited to 'dots/home/scripts/log.sh')
-rwxr-xr-x | dots/home/scripts/log.sh | 32 |
1 files changed, 32 insertions, 0 deletions
diff --git a/dots/home/scripts/log.sh b/dots/home/scripts/log.sh new file mode 100755 index 0000000..8895097 --- /dev/null +++ b/dots/home/scripts/log.sh @@ -0,0 +1,32 @@ +#!/bin/sh + +# usage: +# > source log.sh <CALLER> +# > log INFO "hello" +# > log "this is epic" +# > log DEBUG "yo" + +_LOG_CALLER=$(basename "$1") + +log() { + LEVEL=$1 + shift + + case "$LEVEL" in + INFO|DEBUG|ERROR) + ;; + *) + set -- "INFO" "$LEVEL" "$@" + LEVEL="INFO" + ;; + esac + + TIMESTAMP=$(date '+%Y-%m-%d %H:%M:%S') + MESSAGE="$*" + + if [ "$LEVEL" = "DEBUG" ] && [ -z "$DEBUG" ]; then + return + fi + + echo "[$TIMESTAMP] [$_LOG_CALLER] [$LEVEL] $MESSAGE" +} |