Python、バックグランドスレッドでログを書き出すサンプルコード
code:queue_logging.py
import queue
import logging
import logging.handlers
def loggingQueueListener(filename):
q = queue.Queue(-1)
queue_handler = logging.handlers.QueueHandler(q)
root = logging.getLogger()
root.addHandler(queue_handler)
root.setLevel(logging.INFO)
formatter = logging.Formatter('%(asctime)s %(levelname)s:%(name)s:%(message)s','%Y/%m/%d %H:%M:%S')
console_handler = logging.StreamHandler()
console_handler.setFormatter(formatter)
file_handler = logging.handlers.TimedRotatingFileHandler(filename,'D',1,5)
file_handler.setFormatter(formatter)
return logging.handlers.QueueListener(q, console_handler, file_handler)
listener = settings.loggingQueueListener('sample.log')
listener.start()
# do something
listener.stop()
Bitcoin
3MtsP5ZKAuVA5pH2mDTFpHxHPG2JWC4Kop