Afficher un message
Vieux 05/11/2007, 12h42   #5
NicolasP
Aucun Avatar
 
Messages: n/a
Hébergeur:
Par défaut Re: redirriger stdout et stderr

Bruno Desthuilliers a écrit :
> NicolasP a écrit :
>> 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.

>
> Ils le sont déjà, dans sys.__stdout__ et sys.__stderr__
>

Je le note.
  Réponse avec citation
 
Page generated in 0,05589 seconds with 9 queries