Refactor logging record thread local storage

This commit is contained in:
James R. Barlow
2023-10-24 00:52:31 -07:00
parent 1f16eb6f50
commit ebfe008432
4 changed files with 15 additions and 50 deletions
+8 -13
View File
@@ -5,7 +5,6 @@ import json
import logging
import logging.handlers
import os
import threading
from collections.abc import Sequence
from dataclasses import dataclass
from pathlib import Path
@@ -48,21 +47,17 @@ from ocrmypdf.pdfa import file_claims_pdfa
log = logging.getLogger(__name__)
tls = threading.local()
tls.pageno = None
def set_logging_tls(tls):
old_factory = logging.getLogRecordFactory()
old_factory = logging.getLogRecordFactory()
def wrapper(*args, **kwargs):
record = old_factory(*args, **kwargs)
if hasattr(tls, 'pageno'):
record.pageno = tls.pageno
return record
def record_factory(*args, **kwargs):
record = old_factory(*args, **kwargs)
if hasattr(tls, 'pageno'):
record.pageno = tls.pageno
return record
logging.setLogRecordFactory(record_factory)
logging.setLogRecordFactory(wrapper)
class PageResult(NamedTuple):
+3 -12
View File
@@ -30,6 +30,7 @@ from ocrmypdf._pipelines.common import (
HOCRResult,
post_process,
report_output_pdf,
set_logging_tls,
setup_pipeline,
worker_init,
)
@@ -37,21 +38,11 @@ from ocrmypdf._plugin_manager import OcrmypdfPluginManager
log = logging.getLogger(__name__)
tls = threading.local()
tls.pageno = None
old_factory = logging.getLogRecordFactory()
def record_factory(*args, **kwargs):
record = old_factory(*args, **kwargs)
if hasattr(tls, 'pageno'):
record.pageno = tls.pageno
return record
logging.setLogRecordFactory(record_factory)
set_logging_tls(tls)
def exec_hocrtransform_sync(page_context: PageContext) -> HOCRResult:
+2 -13
View File
@@ -27,6 +27,7 @@ from ocrmypdf._pipeline import (
from ocrmypdf._pipelines.common import (
HOCRResult,
process_page,
set_logging_tls,
setup_pipeline,
worker_init,
)
@@ -37,22 +38,10 @@ from ocrmypdf._validation import (
log = logging.getLogger(__name__)
tls = threading.local()
tls.pageno = None
old_factory = logging.getLogRecordFactory()
def record_factory(*args, **kwargs):
record = old_factory(*args, **kwargs)
if hasattr(tls, 'pageno'):
record.pageno = tls.pageno
return record
logging.setLogRecordFactory(record_factory)
set_logging_tls(tls)
def exec_page_hocr_sync(page_context: PageContext) -> HOCRResult:
+2 -12
View File
@@ -40,6 +40,7 @@ from ocrmypdf._pipelines.common import (
post_process,
process_page,
report_output_pdf,
set_logging_tls,
setup_pipeline,
worker_init,
)
@@ -59,18 +60,7 @@ log = logging.getLogger(__name__)
tls = threading.local()
tls.pageno = None
old_factory = logging.getLogRecordFactory()
def record_factory(*args, **kwargs):
record = old_factory(*args, **kwargs)
if hasattr(tls, 'pageno'):
record.pageno = tls.pageno
return record
logging.setLogRecordFactory(record_factory)
set_logging_tls(tls)
def _image_to_ocr_text(