From 8c35d6e6e41600cd8852352853dafdb254fc78b5 Mon Sep 17 00:00:00 2001 From: "James R. Barlow" Date: Thu, 22 Oct 2020 02:20:06 -0700 Subject: [PATCH] Fix debug log messages being suppressed from child processes --- src/ocrmypdf/_concurrent.py | 7 ++++--- 1 file changed, 4 insertions(+), 3 deletions(-) diff --git a/src/ocrmypdf/_concurrent.py b/src/ocrmypdf/_concurrent.py index bd02f65b..22234580 100644 --- a/src/ocrmypdf/_concurrent.py +++ b/src/ocrmypdf/_concurrent.py @@ -49,7 +49,7 @@ def process_sigbus(*args): raise InputFileError("A worker process lost access to an input file") -def process_init(queue, user_init): +def process_init(queue, user_init, loglevel): """Initialize a process pool worker""" # Ignore SIGINT (our parent process will kill us gracefully) @@ -62,6 +62,7 @@ def process_init(queue, user_init): # Reconfigure the root logger for this process to send all messages to a queue h = logging.handlers.QueueHandler(queue) root = logging.getLogger() + root.setLevel(loglevel) root.handlers = [] root.addHandler(h) @@ -69,7 +70,7 @@ def process_init(queue, user_init): user_init() -def thread_init(_queue, user_init): +def thread_init(_queue, user_init, _loglevel): # As a thread, block SIGBUS so the main thread deals with it... if hasattr(signal, 'SIGBUS'): signal.pthread_sigmask(signal.SIG_BLOCK, {signal.SIGBUS}) @@ -102,7 +103,7 @@ def exec_progress_pool( pool = pool_class( processes=max_workers, initializer=initializer, - initargs=(log_queue, task_initializer), + initargs=(log_queue, task_initializer, logging.getLogger("").level), ) try: results = pool.imap_unordered(task, task_arguments)