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
 
shell/zsh/tips/loglevels.txt · Dernière modification: 2006/10/26 11:58 (modification externe)