81 lines
		
	
	
		
			1.6 KiB
		
	
	
	
		
			Bash
		
	
	
		
			Executable File
		
	
	
	
	
			
		
		
	
	
			81 lines
		
	
	
		
			1.6 KiB
		
	
	
	
		
			Bash
		
	
	
		
			Executable File
		
	
	
	
	
#!/bin/bash
 | 
						|
# set -x 
 | 
						|
 | 
						|
if [ ${log_helpers_sourced:-1} = "1" ]; then    # include ony 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'): $*"
 | 
						|
        printf "log:$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_error() {
 | 
						|
        if [ $log_level -le $ERROR ]; then
 | 
						|
            log "ERROR  $*"
 | 
						|
        fi
 | 
						|
    }
 | 
						|
 | 
						|
    log_fatal() {
 | 
						|
        if [ $log_level -le $FATAL ]; then
 | 
						|
            log "FATAL  $*"
 | 
						|
            log "exiting ..."
 | 
						|
            exit 1
 | 
						|
        fi
 | 
						|
    }
 | 
						|
###############################################################################
 | 
						|
fi ### include guard
 |