no way to compare when less than two revisions
Unterschiede
Hier werden die Unterschiede zwischen zwei Versionen angezeigt.
— | adminstorieslogginginskripten [20120830 08:36] (aktuell) – angelegt Dirk Deimeke | ||
---|---|---|---|
Zeile 1: | Zeile 1: | ||
+ | ====== Logging in Skripten ====== | ||
+ | * Urspruenglicher Autor: Dirk Deimeke | ||
+ | * Urspruengliches Datum: 22.07.2011 | ||
+ | |||
+ | Wenn Shell-Skripte eine gewisse Groesse bekommen, mehrere systemkritische Operationen ausfuehren oder sogar interaktiv von Benutzern gesteuert werden, ist es sinnvoll, ein eigenes Logfile anlegen zu lassen. Selbstverstaendlich kann man aus einem Shell-Skript heraus mit dem Programm logger Meldungen direkt an den Syslog-Daemon schicken. Oft ist es aber sinnvoller, ein eigenstaendiges Log zur Auswertung zu besitzen. | ||
+ | |||
+ | [[http:// | ||
+ | |||
+ | Die Einfachste Anwendung ist das folgende Kurzskript '' | ||
+ | |||
+ | <code bash># | ||
+ | source / | ||
+ | log4bash 0 Meldung</ | ||
+ | |||
+ | Durch das Einbinden kann man die Funktion log4bash direkt im Skript aufrufen. Der Aufruf des Skripts erzeugt eine Logdatei, die zum Skriptnamen passt, an die das Datum angehaengt ist und die auf '' | ||
+ | |||
+ | Die Logeintraege bestehen aus fuenf Elementen: | ||
+ | |||
+ | * Datum, Uhrzeit und Zeitzone: Nach dem Muster YYYY-MM-DD HH:MM:ss.N Z wird das Datum angegeben. | ||
+ | |||
+ | * Loglevel: Das Loglevel wird ueber folgende Zahlenwerte angegeben: | ||
+ | < | ||
+ | 1 = INFO | ||
+ | 2 = WARN | ||
+ | 3 = ERROR | ||
+ | 4 = CRITICAL | ||
+ | 5 = FATAL</ | ||
+ | |||
+ | * Zeilennummer: | ||
+ | |||
+ | * Funktionsname: | ||
+ | |||
+ | * Meldung: Abschliessend wird die uebergebene Meldung ausgefuehrt. | ||
+ | |||
+ | Entsprechend diesen Elementen kann man log4bash mit mehreren Parametern aufrufen. Der folgende Aufruf wuerde eine Logmeldung der Stufe '' | ||
+ | |||
+ | < | ||
+ | |||
+ | Im Log wird dies entsprechend hinterlegt: | ||
+ | |||
+ | < | ||
+ | |||
+ | Damit laesst sich ein gut durchsuchbares Basis-Logging realisieren. Das Verhalten von log4bash laesst sich mit den folgenden Variablen beeinflussen. | ||
+ | |||
+ | * '' | ||
+ | |||
+ | * '' | ||
+ | |||
+ | * '' | ||
+ | |||
+ | * '' | ||
+ | |||
+ | * '' | ||
+ | |||
+ | * '' | ||
+ | |||
+ | * '' | ||
+ | |||
+ | Das fuehrt zu folgendem Beispiel: | ||
+ | |||
+ | <code bash># | ||
+ | source / | ||
+ | declare -a L4B_LABEL=(DEBUG INFO WARN ERROR CRITICAL FATAL ENDOFWORLD) | ||
+ | L4B_DEBUGLVL=1 | ||
+ | L4B_DELIM=" | ||
+ | L4B_DATE=" | ||
+ | L4B_DATEFORMAT=" | ||
+ | L4B_VERBOSE=true | ||
+ | L4B_LOGFILE=" | ||
+ | log4bash 1 "1. Meldung" | ||
+ | L4B_VERBOSE=false | ||
+ | log4bash 0 "2. Meldung" | ||
+ | log4bash 1 "3. Meldung" | ||
+ | |||
+ | Nach dem Ausfuehren des Skriptes findet sich in der angegebenen Log-Datei '' | ||
+ | |||
+ | < | ||
+ | 20101101-135701.026624750 INFO 25 Hauptprogramm 3. Meldung</ | ||
+ | |||
+ | Bereits waehrend der Ausfuehrung wurde die erste Meldung auch auf dem Bildschirm ausgegeben. Meldung 3 hingegen findet sich nur im Log wieder, da die Variable '' | ||
+ | |||
+ | [[adminstoriesartikel|Zurück zur Uebersicht]] |