Dnes sa mi nechce piplať so žiadnym článkom, tak sem tentoraz pridám niečo iné ako zvyčajne. Je to malý trik ako si jednoducho spraviť logovanie v unix shell skripte. Hodí sa to najmä pri väčších skriptoch, a/alebo skriptoch, ktoré niečo modifikujú a je potrebné vedieť o každom kroku, čo skript urobil.
Keď som mal v bývalej robote spraviť nejaký skript, tak som občas používal tieto dve funckie na logovanie.
LOGFILE=/tmp/sem_sa_loguje; put_log() { if [ "$LOG" = "1" -o "$DEBUG" = "1" ]; then DATE=`date "+%Y-%m-%d %H:%M:%S"`; echo "$DATE $@" >> $LOGFILE; fi } put_debug() { if [ "$DEBUG" = "1" ]; then put_log "DEBUG: $@"; fi }
Ako vidíte sú použité tri úrovne logovania. Žiadne logovanie, logovanie normálnych udalostí a debug logovanie.
Stačí nastaviť premennú $LOG
, alebo $DEBUG
na 1 a v skripte používať funkcie put_log
a put_debug
podľa potreby. Ak bude nastavená len premenná $LOG
, tak skript bude logovať len pomocou funkcie put_log. Ak bude nastavená premenná $DEBUG
, tak skript bude logovať aj pomocou put_log
a aj put_debug
.
Pužitie je nasledovné.
#!/bin/sh # ... definícia funkcií ... put_log "Spustenie skriptu"; ... put_debug "Sme v strede skriptu, ale toto je len debug správa"; ... put_log "Ukončenie skriptu";
Samozrejme, že toto bola len jednoduchá ukážka a funkcie si môžete upraviť podľa potreby, poprípade pridať viac úrovní logovania…
Pridaj komentár