Re: redirriger stdout et stderr
Bruno Desthuilliers a écrit :
> m.banaouas a écrit :
>> bonjour à tous,
>>
>> j'utilise le module smtplib et dans certains cas, l'envoi du message
>> échoue. J'ai bien intercepté l'exception générée ainsi que le log
>> (smtp_server.debuglevel=1) ce qui me fournit des info très utiles.
>>
>> Question: comment redirriger stdout et stderr vers un flux interne à
>> mon script afin de le logger à mon tour et à ma façon?
>>
>> merci.
>
> import sys
> class FakeStream(object):
> def __init__(self):
> self._data = []
> def write(self, val):
> self._data.append(val)
> def __str__(self):
> return "".join(map(str, self._data))
>
> sys.stdout = FakeStream()
> sys.stderr = FakeStream()
>
Ne serait t-il pas préférable de sauvegarder sys.stdout et sys.stderr avant ?
Histoire de pouvoir y revenir si nécessaire.
Nicolas
|