Περί debug messages

Giorgos Keramidas keramida at ceid.upatras.gr
Thu Jan 29 15:12:06 EET 2009


On Thu, 29 Jan 2009 14:40:19 +0200, Christos Ricudis <ricudis at itc.auth.gr> wrote:
> George Notaras wrote:
>> Τα debug messages πρέπει να στέλνονται στο stdout ή στο stderr? Υπάρχει
>> κάποιο στανταρ? Το λογικό μου φαίνεται να πάνε στο stdout, καθώς δεν
>> πρόκειται για λάθη ή για προειδοποιήσεις, αλλά για αναλυτικές
>> πληροφορίες σχετικές με την εκτέλεση ενός προγράμματος. Αλλά πάλι, από
>> την άλλη, τι δουλειά έχουν τα debug messages στο stdout?
>>
>> Σκεφτόμουν να γράψω ένα logger module για να χρησιμοποιώ σε διάφορα
>> scripts και προέκυψε αυτό το ερώτημα. Έχει τύχει να δω debug messages
>> και στο stdout και στο stderr σε διάφορα προγράμματα.
> O basikos kanonas einai "sto stderr stelnoume output pou 8eloume na
> mporei na dei o xrhsths akoma ki otan exei kanei redirect to stdout
> allou".
>
> Gia ena paradeigma :
>
> tar -cvf - directory | gzip > koko.gz
>
> To tres spastique einai oti sto agaphmeno mas shell to stderr arneitai
> peismatika thn pipa, opote einai dyskolo na to peraseis me kapoio
> profanh tropo apo enan pager xwris na xrhsimopoihseis ena endiameso
> arxeio (h named pipes kai 2 processes ktl ktl).

Ή dup() σε shell syntax σε ένα temporary file descriptor:

    $ ( echo foo ; echo lala >&2 ) > /dev/null
    lala

    $ ( ( echo foo ; echo lala >&2 ) 3<&1 1<&2 2<&3 ) > /dev/null
    foo

Και στις δύο φορές το stdout πάει στο /dev/null.  Απλά τη δεύτερη έχει
γίνει `swap' το stdout με το stderr.

Αφήνεται ως άσκηση στη λίστα το πως μπορείς να δεις το stderr σε less,
αλλά να στείλεις το stdout σε αρχείο...



More information about the Linux-greek-users mailing list