2022-06-02 15:27:37 +02:00
|
|
|
#!/bin/bash
|
|
|
|
# set -x
|
|
|
|
|
2022-06-02 17:27:30 +02:00
|
|
|
if [ "${log_helpers_sourced:-1}" = "1" ]; then # include only once
|
2022-06-04 14:58:09 +02:00
|
|
|
readonly log_helpers_sourced=${BASH_SOURCE[0]}
|
2022-06-02 15:27:37 +02:00
|
|
|
|
2022-06-04 14:58:09 +02:00
|
|
|
readonly log_file=/var/log/update_controller.log
|
|
|
|
if ! [ -f "$log_file" ]; then
|
|
|
|
touch $log_file
|
|
|
|
fi
|
2022-06-02 15:27:37 +02:00
|
|
|
|
2022-06-04 14:58:09 +02:00
|
|
|
readonly DEBUG=0
|
|
|
|
readonly INFO=1
|
|
|
|
readonly WARN=2
|
|
|
|
readonly CRIT=3
|
|
|
|
readonly ERROR=4
|
|
|
|
readonly FATAL=5
|
|
|
|
readonly MAX_DEBUG_LEVEL=6
|
2022-06-02 15:27:37 +02:00
|
|
|
|
2022-06-04 14:58:09 +02:00
|
|
|
log_level=0
|
2022-06-02 15:27:37 +02:00
|
|
|
|
2022-06-04 14:58:09 +02:00
|
|
|
set_dbg_level () {
|
|
|
|
if [ $1 < $MAX_DEBUG_LEVEL ]; then
|
|
|
|
log_level=$1
|
|
|
|
fi
|
|
|
|
}
|
2022-06-02 15:27:37 +02:00
|
|
|
|
2022-06-04 14:58:09 +02:00
|
|
|
dbg_level () {
|
|
|
|
return $log_level
|
|
|
|
}
|
2022-06-02 15:27:37 +02:00
|
|
|
|
2022-06-04 14:58:09 +02:00
|
|
|
log() {
|
|
|
|
if [[ $(("$(wc -l < $log_file)")) -ge $((100000)) ]]; then
|
|
|
|
# remove first line
|
|
|
|
sed -e 1d -i $log_file
|
|
|
|
fi
|
|
|
|
local msg="$(date +'%Y-%m-%d_%T'): $*"
|
2022-06-03 21:46:55 +02:00
|
|
|
echo "log:$msg" >&2
|
|
|
|
echo "$msg" >> $log_file
|
2022-06-04 14:58:09 +02:00
|
|
|
}
|
2022-06-02 15:27:37 +02:00
|
|
|
|
2022-06-04 14:58:09 +02:00
|
|
|
log_debug() {
|
|
|
|
if [ $log_level = $DEBUG ]; then
|
|
|
|
log "DEBUG $*"
|
|
|
|
fi
|
|
|
|
}
|
2022-06-02 15:27:37 +02:00
|
|
|
|
2022-06-04 14:58:09 +02:00
|
|
|
log_info() {
|
|
|
|
if [ $log_level -le $INFO ]; then
|
|
|
|
log "INFO $*"
|
|
|
|
fi
|
|
|
|
}
|
2022-06-02 15:27:37 +02:00
|
|
|
|
2022-06-04 14:58:09 +02:00
|
|
|
log_warn() {
|
|
|
|
if [ $log_level -le $WARN ]; then
|
|
|
|
log "WARN $*"
|
|
|
|
fi
|
|
|
|
}
|
2022-06-02 15:27:37 +02:00
|
|
|
|
2022-06-04 14:58:09 +02:00
|
|
|
log_crit() {
|
|
|
|
if [ $log_level -le $CRIT ]; then
|
|
|
|
log "CRIT $*"
|
|
|
|
fi
|
|
|
|
}
|
2022-06-03 20:45:52 +02:00
|
|
|
|
2022-06-04 14:58:09 +02:00
|
|
|
log_error() {
|
|
|
|
if [ $log_level -le $ERROR ]; then
|
|
|
|
log "ERROR $*"
|
|
|
|
fi
|
|
|
|
}
|
2022-06-02 15:27:37 +02:00
|
|
|
|
2022-06-04 14:58:09 +02:00
|
|
|
log_fatal() {
|
|
|
|
if [ $log_level -le $FATAL ]; then
|
|
|
|
log "FATAL $*"
|
|
|
|
log "exiting ..."
|
|
|
|
exit 1
|
|
|
|
fi
|
|
|
|
}
|
|
|
|
###############################################################################
|
|
|
|
fi ### include guard
|