Afficher un message
Vieux 05/11/2007, 07h48   #3
NicolasP
Aucun Avatar
 
Messages: n/a
Hébergeur:
Par défaut 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
  Réponse avec citation
 
Page generated in 0,04830 seconds with 9 queries