log.py 847 B

123456789101112131415161718192021222324252627
  1. # adapted from https://medium.com/@jonathonbao/python3-logging-with-multiprocessing-f51f460b8778
  2. import logging
  3. import threading
  4. from logging import handlers
  5. def listener_configurer():
  6. root = logging.getLogger()
  7. console_handler = logging.StreamHandler()
  8. formatter = logging.Formatter('%(threadName)-25s %(name)-16s %(levelname)-8s: %(message)s')
  9. console_handler.setFormatter(formatter)
  10. root.addHandler(console_handler)
  11. root.setLevel(logging.INFO)
  12. def root_configurer(queue):
  13. h = handlers.QueueHandler(queue)
  14. root = logging.getLogger()
  15. root.addHandler(h)
  16. root.setLevel(logging.INFO)
  17. def log_process(queue):
  18. threading.current_thread().name = f"logger"
  19. listener_configurer()
  20. while True:
  21. record = queue.get()
  22. logger = logging.getLogger(record.name)
  23. logger.handle(record)