Anzeige:
Ergebnis 1 bis 6 von 6

Thema: Logging innerhalb eines Bashscripts

  1. #1
    Registrierter Benutzer Avatar von TheDodger
    Registriert seit
    17.05.2001
    Ort
    Hamburg
    Beiträge
    615

    Logging innerhalb eines Bashscripts

    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?
    Bodo
    Systemadmistration UNIX

  2. #2
    Registrierter Benutzer Avatar von Hans-Georg Normann
    Registriert seit
    04.03.2000
    Ort
    Uetersen
    Beiträge
    571
    Ich verstehe das nicht so ganz. Meinst du mit logging etwa die Ausgabe, wie sie mit
    Code:
    bash -xv deinscript
    ensteht?

    Hans
    333 Mhz, 466 MHz, neee, ich hab was neues zuhause.....

  3. #3
    Registrierter Benutzer
    Registriert seit
    05.09.2002
    Ort
    Neuhausen
    Beiträge
    320
    Einzelne Logmeldungen können so ausgegeben werden:
    Code:
    LOG='script.log'
    echo "Ich mach was"
    echo "$0: was gemacht" >>$LOG
    Für grössere Scripte verwende ich folgendes:
    Code:
    exec 3>script.log
    echo "Ich mach was"
    echo "$0: was gemacht" >&3
    Soll in die Syslog geloggt werden: man logger

    Gruss, Andy

  4. #4
    Registrierter Benutzer Avatar von TheDodger
    Registriert seit
    17.05.2001
    Ort
    Hamburg
    Beiträge
    615
    Alles nicht richtig ...
    Ich möchte pro Loglevel ( all | small | verysmall ) eine extra Logdatei anlegen, aber für das Loggen nur eine Funktion einsetzen.
    Bodo
    Systemadmistration UNIX

  5. #5
    Registrierter Benutzer
    Registriert seit
    05.09.2002
    Ort
    Neuhausen
    Beiträge
    320

    Etwa so?

    Code:
    #!/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"

  6. #6
    Registrierter Benutzer Avatar von TheDodger
    Registriert seit
    17.05.2001
    Ort
    Hamburg
    Beiträge
    615
    Genau, was ich suchte!
    Ich hatte sowas in der Art auch schon probiert, aber das mit dem 'shift' fehlte bei mir ....
    Bodo
    Systemadmistration UNIX

Lesezeichen

Berechtigungen

  • Neue Themen erstellen: Nein
  • Themen beantworten: Nein
  • Anhänge hochladen: Nein
  • Beiträge bearbeiten: Nein
  •