Always log to file. Log to terminal depending on debug level.

This commit is contained in:
Gerhard Hoffmann 2023-05-24 13:02:56 +02:00
parent 33511a5bcb
commit 4f9c6155e1

View File

@ -1,10 +1,6 @@
#!/bin/bash #!/bin/bash
# set -x # 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 if [ "${log_helpers_sourced:-1}" = "1" ]; then # include only once
readonly log_helpers_sourced=${BASH_SOURCE[0]} readonly log_helpers_sourced=${BASH_SOURCE[0]}
@ -33,51 +29,60 @@ if [ "${log_helpers_sourced:-1}" = "1" ]; then # include only once
return $log_level return $log_level
} }
log() { log_to_file() {
# TODO: kann man wohl entfernen
if [[ $(("$(wc -l < $log_file)")) -ge $((100000)) ]]; then if [[ $(("$(wc -l < $log_file)")) -ge $((100000)) ]]; then
# remove first line # remove first line
sed -e 1d -i $log_file sed -e 1d -i $log_file
fi fi
local msg="$(date +'%Y-%m-%d_%T'): $*" local msg="$(date +'%Y-%m-%d_%T'): $*"
echo "log:$msg" >&2
echo "$msg" >> $log_file echo "$msg" >> $log_file
} }
log() {
local msg="$(date +'%Y-%m-%d_%T'): $*"
echo "log:$msg" >&2
}
log_debug() { log_debug() {
log_to_file "DEBUG $*"
if [ $log_level -le $DEBUG ]; then if [ $log_level -le $DEBUG ]; then
log "DEBUG $*" log "DEBUG $*"
fi fi
} }
log_info() { log_info() {
log_to_file "INFO $*"
if [ $log_level -le $INFO ]; then if [ $log_level -le $INFO ]; then
log "${GREEN}INFO $*" log "INFO $*"
fi fi
} }
log_warn() { log_warn() {
log_to_file "WARN $*"
if [ $log_level -le $WARN ]; then if [ $log_level -le $WARN ]; then
log "${RED}WARN $*" log "WARN $*"
fi fi
} }
log_crit() { log_crit() {
log_to_file "CRIT $*"
if [ $log_level -le $CRIT ]; then if [ $log_level -le $CRIT ]; then
log "${RED}CRIT $*" log "CRIT $*"
fi fi
} }
log_error() { log_error() {
log_to_file "ERROR $*"
if [ $log_level -le $ERROR ]; then if [ $log_level -le $ERROR ]; then
log "${RED}ERROR $*" log "ERROR $*"
fi fi
} }
log_fatal() { log_fatal() {
log_to_file "FATAL $*"
if [ $log_level -le $FATAL ]; then if [ $log_level -le $FATAL ]; then
log "${RED}FATAL $*" log "FATAL $*"
log "${RED}exiting ..." log "exiting ..."
exit 1 exit 1
fi fi
} }