From e2a563cc761a6e2201b202f1a7b62d40fe12fa2d Mon Sep 17 00:00:00 2001 From: "James R. Barlow" Date: Wed, 1 Jan 2020 16:47:15 -0800 Subject: [PATCH] logging: create a debug log when -k parameter is issued --- src/ocrmypdf/_sync.py | 15 +++++++++++++++ src/ocrmypdf/api.py | 9 ++++++--- 2 files changed, 21 insertions(+), 3 deletions(-) diff --git a/src/ocrmypdf/_sync.py b/src/ocrmypdf/_sync.py index 12f85738..119aaba2 100644 --- a/src/ocrmypdf/_sync.py +++ b/src/ocrmypdf/_sync.py @@ -23,6 +23,7 @@ import signal import sys import threading from collections import namedtuple +from pathlib import Path from tempfile import mkdtemp import PIL @@ -335,6 +336,17 @@ def samefile(f1, f2): return os.path.samefile(f1, f2) +def configure_debug_logging(log_filename, prefix=''): + log_file_handler = logging.FileHandler(log_filename, delay=True) + log_file_handler.setLevel(logging.DEBUG) + formatter = logging.Formatter( + '[%(asctime)s] - %(name)s - %(levelname)7s - %(message)s' + ) + log_file_handler.setFormatter(formatter) + logging.getLogger(prefix).addHandler(log_file_handler) + return + + def run_pipeline(options, api=False): log = make_logger(options, __name__) @@ -345,6 +357,9 @@ def run_pipeline(options, api=False): options.jobs = available_cpu_count() work_folder = mkdtemp(prefix="com.github.ocrmypdf.") + if options.keep_temporary_files: + configure_debug_logging(Path(work_folder) / "debug.log") + try: check_requested_output_file(options) start_input_file, original_filename = create_input_file(options, work_folder) diff --git a/src/ocrmypdf/api.py b/src/ocrmypdf/api.py index 3270b25d..bad68732 100644 --- a/src/ocrmypdf/api.py +++ b/src/ocrmypdf/api.py @@ -89,11 +89,14 @@ def configure_logging(verbosity, progress_bar_friendly=True, manage_root_logger= overwrite the progress bar manage_root_logger (bool): Configure the process's root logger, to ensure all log output is sent through + + Returns: + The toplevel logger for ocrmypdf (or the root logger, if we are managing it). """ prefix = '' if manage_root_logger else 'ocrmypdf' log = logging.getLogger(prefix) - log.setLevel(logging.INFO) + log.setLevel(logging.DEBUG) if progress_bar_friendly: console = logging.StreamHandler(stream=TqdmConsole(sys.stderr)) @@ -108,8 +111,6 @@ def configure_logging(verbosity, progress_bar_friendly=True, manage_root_logger= console.setLevel(logging.INFO) formatter = logging.Formatter('%(levelname)7s - %(message)s') - if verbosity >= 1: - log.setLevel(logging.DEBUG) if verbosity >= 2: formatter = logging.Formatter('%(name)s - %(levelname)7s - %(message)s') @@ -125,6 +126,8 @@ def configure_logging(verbosity, progress_bar_friendly=True, manage_root_logger= if manage_root_logger: logging.captureWarnings(True) + return log + def create_options(*, input_file, output_file, **kwargs): cmdline = []