PDA

Archiv verlassen und diese Seite im Standarddesign anzeigen : Logging innerhalb eines Bashscripts



TheDodger
02-11-2004, 07:12
Moin!

Vielleicht hat ja jemand schon etwas ähnliches gemacht ...
Ich suche eine Möglichkeit, innerhalb eines Bashscriptes ein logging der einzelnen Funktionen zu implementieren.
Die sollen allerding - parameterabhängig - in unterschiedliche Dateien wandern.
Ich möchte dazu aber nicht für jede Datei eine extra Funktion haben, sondern das alles möglichst in einer regeln.

Hat das schon mal jemand gemacht?

Hans-Georg Normann
03-11-2004, 18:38
Ich verstehe das nicht so ganz. Meinst du mit logging etwa die Ausgabe, wie sie mit
bash -xv deinscript ensteht?

Hans

RapidMax
03-11-2004, 20:33
Einzelne Logmeldungen können so ausgegeben werden:

LOG='script.log'
echo "Ich mach was"
echo "$0: was gemacht" >>$LOG
Für grössere Scripte verwende ich folgendes:

exec 3>script.log
echo "Ich mach was"
echo "$0: was gemacht" >&3

Soll in die Syslog geloggt werden: man logger

Gruss, Andy

TheDodger
04-11-2004, 15:33
Alles nicht richtig ...
Ich möchte pro Loglevel ( all | small | verysmall ) eine extra Logdatei anlegen, aber für das Loggen nur eine Funktion einsetzen.

RapidMax
28-11-2004, 17:46
#!/bin/bash

function log() {
level="$1"
shift
case "${level}" in
verysmall)
echo "`date -R`:" "$*" >>verysmall.log
;;
small)
echo "`date -R`:" "$*" >>small.log
;;
*)
echo "`date -R`:" "$*" >>all.log
;;
esac
}

log all Bla blabla
log all "Bla blabla"
log small "blub bli"
log verysmall "bli bla blub"

TheDodger
13-12-2004, 12:50
Genau, was ich suchte!
Ich hatte sowas in der Art auch schon probiert, aber das mit dem 'shift' fehlte bei mir ....