Wer viel Scripte in Bash hat, der sollte sich überlegen, wie er bestimmte Ausgaben ausgibt. In vielen Programmiersprachen gibt es dafür eine eigentständige Library, die man sich herholen kann. z.B. bei Java, Log4J. Hier ein winziger Ansatz, um ein LOG Mechanismus in seinen eigenen Scripten zu benutzen:
################################################################################
### Log-Funktionen:
function logInfo
{
local ts
ts="$(date +'%Y%m%d-%H%M%S%z')"
echo "${ts} INFO $*"
}
function logWarn
{
local ts
ts="$(date +'%Y%m%d-%H%M%S%z')"
echo "${ts} WARN $*"
}
function logErr
{
local ts
ts="$(date +'%Y%m%d-%H%M%S%z')"
echo "${ts} ERROR $*"
echo "${ts} ERROR $*" >&2
}
# Exit Function
function exit_bash ()
{
local exitcode=$1
if [ $exitcode -eq 0 ];then
echo "Beenden RC=0"
else
logErr "Abbruch RC=$1"
fi
DATE=`date '+%Y-%m-%d %H:%M:%S'`
echo "Ende: $DATE "
exit $1
}
Diese Funktionen sollte man entweder in eienr seperaten Datei speichern und diese dann per source einbinden oder diese im Kopf jeder Bash Datei einsetzen.
Später kann man anstatt echo
dann logInfo
, logWarn
oder logErr
verwenden.
Biespiel:
#!/bin/bash
source include.sh
# LOG Info
logInfo "Dies ist eine Info Nachricht"
# LOG Warn
logWarn "Dies ist eine Warn Nachricht"
# LOG Error
logErr "Dies ist eine Error Nachricht"
# Beenden und loggen
exit_bash 99
Dies erzeugt folgende Ausgabe:
20191219-112604+0100 INFO Dies ist eine Info Nachricht
20191219-112604+0100 WARN Dies ist eine Warn Nachricht
20191219-112604+0100 ERROR Dies ist eine Error Nachricht
20191219-112604+0100 ERROR Abbruch RC=99
Ende: 2019-12-19 11:26:04
Auf Github: https://github.com/triopsi/logbash
Viel Erfolg