68 lines
1.3 kB
1
RWX_LOG_LEVEL_FATAL=0
2
RWX_LOG_LEVEL_ERROR=1
3
RWX_LOG_LEVEL_WARN=2
4
RWX_LOG_LEVEL_INFO=3
5
RWX_LOG_LEVEL_DEBUG=4
6
RWX_LOG_LEVEL_TRACE=5
7
8
RWX_LOG_LEVEL=${RWX_LOG_LEVEL_INFO}
9
10
rwx_log() { rwx_log_info "${@}"; }
11
12
rwx_log_debug() {
13
if [ "${RWX_LOG_LEVEL}" -ge "${RWX_LOG_LEVEL_DEBUG}" ]; then
14
_rwx_log "[DEBUG]" "${@}"
15
fi
16
}
17
18
rwx_log_error() {
19
local code="${1}"
20
shift
21
[ -n "${code}" ] || rwx_log_fatal 1 "No error code"
22
if [ "${RWX_LOG_LEVEL}" -ge "${RWX_LOG_LEVEL_ERROR}" ]; then
23
_rwx_log "[ERROR]" "${@}" >&2
24
return "${code}"
25
fi
26
}
27
28
rwx_log_fatal() {
29
local code="${1}"
30
shift
31
[ -n "${code}" ] || rwx_log_fatal 1 "No error code"
32
if [ "${RWX_LOG_LEVEL}" -ge "${RWX_LOG_LEVEL_FATAL}" ]; then
33
_rwx_log "[FATAL]" "${@}" >&2
34
exit "${code}"
35
fi
36
}
37
38
rwx_log_info() {
39
if [ "${RWX_LOG_LEVEL}" -ge "${RWX_LOG_LEVEL_INFO}" ]; then
40
_rwx_log "" "${@}"
41
fi
42
}
43
44
rwx_log_trace() {
45
if [ "${RWX_LOG_LEVEL}" -ge "${RWX_LOG_LEVEL_TRACE}" ]; then
46
_rwx_log "[TRACE]" "${@}"
47
fi
48
}
49
50
rwx_log_warn() {
51
if [ "${RWX_LOG_LEVEL}" -ge "${RWX_LOG_LEVEL_WARN}" ]; then
52
_rwx_log "[ WARN]" "${@}"
53
fi
54
}
55
56
_rwx_log() {
57
local prefix="${1}"
58
shift
59
[ ${#} -gt 0 ] || set -- ""
60
local line
61
for line in "${@}"; do
62
if [ -n "${prefix}" ]; then
63
__rwx_log "${prefix} ${line}"
64
else
65
__rwx_log "${line}"
66
fi
67
done
68
}
69