Kategorien
Allgemein

Loggen in Shell Programmen

In Java wird log4j genutzt, in Perl gibt es Log::Log4perl, in Python ist zwar keine 4 im Namen, aber logging tut es ja auch. Für JavaScript gibt es log4js und in Bash gibt es natürlich log4sh. Aber wie immer, kann man das auch einfach selber machen.

Zum Beispiel mit einer einfachen log Funktion:

#!/usr/bin/bash
LOG_DEBUG=0
LOG_INFO=1
LOG_WARN=2
LOG_ERROR=3
LOG_CRITICAL=4
export LOG_DEBUG LOG_INFO LOG_WARN LOG_ERROR LOG_CRITICAL

export LOG_LEVEL=$LOG_WARN
export LOG_FILE="$HOME/simple_log"

function log() {
    local level=shift
    local message=$*

    if [ "$level" -ge "$LOG_LEVEL" ]
    then
        echo "$(date) $message" >> "$LOG_FILE"
    fi
}

Ist dieses Shell Skript in einer Datei – sagen wir simple_log.sh – gespeichert, so kann es in einem anderen Shell-Skript wie folgt genutzt werden:

#!/usr/bin/bash
. simple_log.sh

log $LOG_DEBUG "Am Anfang des Skriptes"
log $LOG_INFO "Und ende."

Aber ehrlich: log4sh ist genauso einfach zu benutzen und kann viel mehr.

Kategorien
Allgemein

ByteBlog wieder da

Nach dem Crash wollte Quills nicht mehr starten.

Sobald Quills als Produkt installiert wurde, kam auf der Startseite von ByteWurf nur noch eine ewig lange Fehlermeldung, dass ein „traversable adapter“ für weblogs nicht gefunden werden konnte.

Das Zope den Adapter nicht finden konnte, lag daran, dass die Module für quills – wie app und core – gar nicht erst geladen wurden, da setuptools nicht installiert war.

Nun mussten nur noch die Workflow Zustände im Code von „published“ auf den ByteWurf Zustand gebracht werden. Und schon können alle wieder bloggen.