forked from Github/frigate
use a queue for logging
This commit is contained in:
25
frigate/log.py
Normal file
25
frigate/log.py
Normal file
@@ -0,0 +1,25 @@
|
||||
# adapted from https://medium.com/@jonathonbao/python3-logging-with-multiprocessing-f51f460b8778
|
||||
import logging
|
||||
import threading
|
||||
from logging import handlers
|
||||
|
||||
def listener_configurer():
|
||||
root = logging.getLogger()
|
||||
console_handler = logging.StreamHandler()
|
||||
formatter = logging.Formatter('%(processName)-12s %(threadName)-12s %(name)-16s %(levelname)-8s: %(message)s')
|
||||
console_handler.setFormatter(formatter)
|
||||
root.addHandler(console_handler)
|
||||
root.setLevel(logging.INFO)
|
||||
|
||||
def root_configurer(queue):
|
||||
h = handlers.QueueHandler(queue)
|
||||
root = logging.getLogger()
|
||||
root.addHandler(h)
|
||||
root.setLevel(logging.INFO)
|
||||
|
||||
def log_process(queue):
|
||||
listener_configurer()
|
||||
while True:
|
||||
record = queue.get()
|
||||
logger = logging.getLogger(record.name)
|
||||
logger.handle(record)
|
||||
Reference in New Issue
Block a user