Petit gestionnaire de log, permet d'utiliser plusieurs niveaux de message dans
un script.
loglevel () {
# $1 est le loglevel désiré
# $level est l'index de ce loglevel dans la liste des loglevels
typeset level=$LOGLEVELS[(i)$1]
# pour tous les loglevels inferieurs a celui demandé
# ( ${^LOGLEVELS[1,$level - 1]} )
# je genere des fonctions vides
# eval $LOGLEVEL' () { };'
# pour les autres, je génère des fonctions qui écrivent
# les paramètres dans sterr ( print -u2 )
# eval $LOGLEVEL' () { print -u2 $* };'
eval ${^LOGLEVELS[1,$level - 1]}' () { };' ${^LOGLEVELS[$level,-1]}' () { print -u2 $* };'
}
Definition des différents niveaux d'erreur
LOGLEVELS=( DEBUG{3..1} DEBUG WARN VERBOSE INFO QUIET )
Utilisation
loglevel QUIET
QUIET message sans importance
DEBUG message de debug