#!/bin/bash # set -x readonly DEBUG=0 readonly INFO=1 readonly WARN=2 readonly CRIT=3 readonly FATAL=4 readonly MAX_DEBUG_LEVEL=5 log_level=0 set_dbg_level () { if [ $1 < $MAX_DEBUG_LEVEL ]; then log_level=$1 fi } dbg_level () { return $log_level } log() { local log_file=/var/log/update_controller.log if [ -f "$log_file" ]; then touch $log_file fi if [[ "$(wc -l < $log_file)" > "100000" ]]; then # remove first line sed -e 1d -i $log_file fi local msg="$(date +'%Y-%m-%d_%T'): $*" printf "$msg\n" >&2 printf "$msg\n" >> $log_file } log_debug() { if [ $log_level = $DEBUG ]; then log "DEBUG $*" fi } log_info() { if [ $log_level -le $INFO ]; then log "INFO $*" fi } log_warn() { if [ $log_level -le $WARN ]; then log "WARN $*" fi } log_crit() { if [ $log_level -le $CRIT ]; then log "CRIT $*" fi } log_fatal() { if [ $log_level -le $FATAL ]; then log "FATAL $*" log "exiting ..." exit 1 fi } # log "test message1" "test message2"