2010-06-08 5 views
3

J'essaie de configurer un cadre de journalisation simple dans mes scripts shell. Pour cela, je voudrais définir une fonction « log » appelable commeenregistrement de l'erreur de script shell

log "LEVEL" $message 

Lorsque le message est une variable à laquelle je l'ai déjà réorienté les sorties de commandes exécutées. Mon problème est que je reçois des erreurs avec les éléments suivants

{message=command 2>&3 1>&3 3>&-} >&3 
log "INFO" $message 

Quelque chose ne va pas n'est pas là?

TIA

+1

Erreurs? Quelles erreurs? Je ne vois pas d'erreurs ici. (En d'autres termes, cela aide si vous postez les erreurs.) –

+0

Je n'ai pas accès au script ATM et je m'en vais par la mémoire. Je vais éditer mon message ASAP – Eddy

Répondre

1

Peut-être que vous voulez:

message=$(command 2>&1) 
log INFO "$message" 
+0

J'ai fini par faire cela et la commutation de destination du journal sur la valeur de retour de commande. Merci – Eddy

+0

Salut, c'est ce que j'ai fini par faire, avec un commutateur if pour vérifier la valeur de retour de la commande et définir la catégorie de journal de manière appropriée. merci, Eddy – Eddy

0

En plus du $(), vous devez utiliser des espaces et un point-virgule avec vos accolades (si vous avez besoin même):

{ command; } 
1

Il n'est pas tout à fait clair que votre problème est lié à la journalisation (il semblerait que votre problème soit de capturer le texte à enregistrer, ce que glenn jackman a habilement suggéré une solution), mais seulement Dans le cas, vous pourriez être conscient de la commande logger trouvé sur la plupart des systèmes Unix — il fournit aux scripts shell la possibilité d'écrire le journal système. Il a différents niveaux et priorités et tout. Très utile.

+0

Salut ce serait un bon mais je n'ai pas accès à la configuration de syslog. Merci de toute façon eddy – Eddy

3

J'ai développé un simple multi-level logger pour mes scripts shell, vous pouvez jeter un oeil pour l'utilisation, l'inspiration, ou ce que vous voulez.

+1

Parfait compagnon de travail. Je cherchais un tel cadre facile à utiliser et léger. Bien joué. – user613114

+0

De rien, je suis content que vous l'ayez trouvé utile – jmoreno