S
scriptlearner
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.start()
time.sleep(0.1)
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.start()
time.sleep(0.1)