On Apr 12, 3:42 pm, "Gabriel Genellina" <[EMAIL PROTECTED]> wrote: > En Thu, 12 Apr 2007 07:23:43 -0300, SamG <[EMAIL PROTECTED]> escribió: > > > > >> >> > How could i make, from inside the program, to have the stdout and > >> >> > stderr to be printed both to a file as well the terminal(as usual). > > >> >> class Tee(file): > >> >> others = () > > >> >> def write(self, data): > >> >> file.write(self, data) > >> >> for f in others: > >> >> f.write(data) > > >> > This is only creating an out.log file and all the stdout and stderr > >> > are logged there. > > >> Sorry, `for f in others:` should read `for f in self.others:` > > > Does not make difference, does this work for you? Im working on linux. > > But this code looks portable except for the file path :) > > Yes. And it's rather similar to your other example... Omit sys.stderr as > Antoon Pardon suggested. > > -- > Gabriel Genellina
Thanks people i have got it working now... with this program! #END import sys class multicaster(object): def __init__(self, filelist): self.filelist = filelist def write(self, str): for f in self.filelist: f.write(str) log_file=open('out.log','w') mc = multicaster([sys.stderr, log_file]) sys.stdout = mc sys.stderr = mc sys.stdout.write( "Mojozoox\n") sys.stderr.write( "Hello\n") #END works perfect for my needs. -- http://mail.python.org/mailman/listinfo/python-list