Пытаюсь использовать logging в многопоточном приложении. При попытке из порожденного потока писать в лог, получаю ошибку. Вот код:
import logging
from threading import Thread
class Dummy(Thread):
def __init__(self):
super(Dummy, self).__init__()
def run(self):
logging.info('Hello!') # Вылетает здесь
def main():
logging.basicConfig(level=logging.DEBUG,
format='%(asctime)s %(levelname)s %(message)s',
filename='log.txt',
filemode='w')
Dummy().start()
if __name__ == '__main__':
main()
Traceback (most recent call last):
File "D:\Developing\Platforms\jython252rc2\Lib\logging\__init__.py", line 750, in emit
self.stream.write(fs % msg)
File "D:\Developing\Platforms\jython252rc2\Lib\logging\__init__.py", line 750, in emit
self.stream.write(fs % msg)
ValueError: I/O operation on closed file