aboutsummaryrefslogtreecommitdiff
path: root/lib/logging.bash
blob: 76df93732a1f88c4def1f853333f7d1d7857ccf6 (plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
#!/usr/bin/env bash

# The base function to output logging information. This should *not* be used
# directly, but the helper functions can be used safely.
log() {
	local OPTIND
	local color

	while getopts ":c:" opt
	do
		case "$opt" in
			c) color=$OPTARG ;;
			*) alert "Unused argument specified: $opt" ;;
		esac
	done

	shift $(( OPTIND - 1 ))

	printf "${color}[%s] %s\e[0m\n" "$(date +%FT%T)" "$*" >&2
}

if [[ "$(awk '$1 == "'"$TERM"'" {print 1}' "$BASEDIR/etc/color-terminals.txt")" ]]
then
	debug() {
		[[ -z $RSTAR_DEBUG ]] && return
		log -c "\e[1;30m" -- "$*"
	}

	info() {
		log -- "$*"
	}

	notice() {
		log -c "\e[0;34m" -- "$*"
	}

	warn() {
		log -c "\e[0;33m" -- "$*"
	}

	crit() {
		log -c "\e[0;31m" -- "$*"
	}

	alert() {
		log -c "\e[1;31m" -- "$*"
	}

	emerg() {
		log -c "\e[1;4;31m" -- "$*"
	}
else
	debug() {
		[[ -z $RSTAR_DEBUG ]] && return
		log -- "[DEBUG] $*"
	}

	info() {
		log -- "[INFO]  $*"
	}

	notice() {
		log -- "[NOTIC] $*"
	}

	warn() {
		log -- "[WARN]  $*"
	}

	crit() {
		log -- "[CRIT]  $*"
	}

	alert() {
		log -- "[ALERT] $*"
	}

	emerg() {
		log -- "[EMERG] $*"
	}
fi