OS: Solaris 9 Python Version: 2.4.4 I need to log certain data in a worker thread; however, I am getting an error now when I use two worker threads. I think the problem comes from the line logging.info('Thread Object (%d):(%d), Time:%s in seconds %d'% (self.no,self.duration,time.ctime(),time.time())) when multiple worker thread is trying to update the log files. What did I do wrong? Should I lock the log file before writing to it? Thanks.
Traceback (most recent call last): File "/tools/python-2_4_4.i386.solaris.5_9/lib/python2.4/logging/ __init__.py", line 737, in emit self.stream.write(fs % msg) ValueError: I/O operation on closed file Traceback (most recent call last): File "/tools/python-2_4_4.i386.solaris.5_9/lib/python2.4/logging/ __init__.py", line 737, in emit self.stream.write(fs % msg) ValueError: I/O operation on closed file class Worker(threading.Thread): def __init__(self,no,duration): threading.Thread.__init__(self) self.no = no self.duration = duration def run(self): end = time.time() + self.duration while(end > time.time()): logging.info('Thread Object (%d):(%d), Time:%s in seconds %d'%(self.no,self.duration,time.ctime(),time.time())) time.sleep(10) def main(): children = [] logging.basicConfig(level=logging.INFO, format='%(asctime)s %(levelname)s % (message)s', filename='logs/myapp.log', filemode='w') args = parseArgs() for i in range(args.threads): logging.info('i=%d'%(i)) children.append(Worker(i,args.duration)) children[i].start() time.sleep(0.1) -- http://mail.python.org/mailman/listinfo/python-list