85 lines
1.7 KiB
Bash
Executable File
85 lines
1.7 KiB
Bash
Executable File
#!/bin/bash
|
|
# set -x
|
|
|
|
RED='\e[0;31m'
|
|
GREEN='\e[0;32m'
|
|
NC='\e[0m' # No Color
|
|
|
|
if [ "${log_helpers_sourced:-1}" = "1" ]; then # include only once
|
|
readonly log_helpers_sourced=${BASH_SOURCE[0]}
|
|
|
|
readonly log_file=/var/log/update_controller.log
|
|
if ! [ -f "$log_file" ]; then
|
|
touch $log_file
|
|
fi
|
|
|
|
readonly DEBUG=0
|
|
readonly INFO=1
|
|
readonly WARN=2
|
|
readonly CRIT=3
|
|
readonly ERROR=4
|
|
readonly FATAL=5
|
|
readonly MAX_DEBUG_LEVEL=6
|
|
|
|
log_level=0
|
|
|
|
set_dbg_level () {
|
|
if [ $1 < $MAX_DEBUG_LEVEL ]; then
|
|
log_level=$1
|
|
fi
|
|
}
|
|
|
|
dbg_level () {
|
|
return $log_level
|
|
}
|
|
|
|
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'): $*"
|
|
echo "log:$msg" >&2
|
|
echo "$msg" >> $log_file
|
|
}
|
|
|
|
log_debug() {
|
|
if [ $log_level = $DEBUG ]; then
|
|
log "DEBUG $*"
|
|
fi
|
|
}
|
|
|
|
log_info() {
|
|
if [ $log_level -le $INFO ]; then
|
|
log "${GREEN}INFO $*"
|
|
fi
|
|
}
|
|
|
|
log_warn() {
|
|
if [ $log_level -le $WARN ]; then
|
|
log "${RED}WARN $*"
|
|
fi
|
|
}
|
|
|
|
log_crit() {
|
|
if [ $log_level -le $CRIT ]; then
|
|
log "${RED}CRIT $*"
|
|
fi
|
|
}
|
|
|
|
log_error() {
|
|
if [ $log_level -le $ERROR ]; then
|
|
log "${RED}ERROR $*"
|
|
fi
|
|
}
|
|
|
|
log_fatal() {
|
|
if [ $log_level -le $FATAL ]; then
|
|
log "${RED}FATAL $*"
|
|
log "${RED}exiting ..."
|
|
exit 1
|
|
fi
|
|
}
|
|
###############################################################################
|
|
fi ### include guard
|