Logovanie v shell skripte

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.

<br />
LOGFILE=/tmp/sem_sa_loguje;</p>
<p>put_log() {<br />
        if [ &quot;$LOG&quot; = &quot;1&quot; -o &quot;$DEBUG&quot; = &quot;1&quot; ]; then<br />
                DATE=`date &quot;+%Y-%m-%d %H:%M:%S&quot;`;<br />
                echo &quot;$DATE $@&quot; &gt;&gt; $LOGFILE;<br />
        fi<br />
}</p>
<p>put_debug() {<br />
        if [ &quot;$DEBUG&quot; = &quot;1&quot; ]; then<br />
                put_log &quot;DEBUG: $@&quot;;<br />
        fi<br />
}<br />

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é.

<br />
#!/bin/sh</p>
<p># ... definícia funkcií ...</p>
<p>put_log &quot;Spustenie skriptu&quot;;<br />
...<br />
put_debug &quot;Sme v strede skriptu, ale toto je len debug správa&quot;;<br />
...<br />
put_log &quot;Ukončenie skriptu&quot;;<br />

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

Vaša e-mailová adresa nebude zverejnená. Vyžadované polia sú označené *