More fixes to logging and disabled tests

This commit is contained in:
James R. Barlow
2019-05-15 03:08:09 -07:00
parent 486f73d5d6
commit 4410503349
2 changed files with 39 additions and 8 deletions
+9 -4
View File
@@ -17,6 +17,7 @@
# along with OCRmyPDF. If not, see <http://www.gnu.org/licenses/>.
import argparse
import logging
import os
import sys
@@ -459,14 +460,18 @@ debugging.add_argument(
action='store_true',
help="Keep temporary files (helpful for debugging)",
)
# debugging.add_argument(
# '--flowchart', type=str, help="Generate the pipeline execution flowchart"
# )
def run(args=None):
options = parser.parse_args(args=args)
return run_pipeline(options)
log = logging.getLogger()
console = logging.StreamHandler(stream=sys.stderr)
console.setLevel(logging.DEBUG)
log.addHandler(console)
result = run_pipeline(options)
return result
if __name__ == '__main__':
+30 -4
View File
@@ -36,7 +36,7 @@ class PDFContext:
self.name = 'origin.pdf'
if self.name == '-':
self.name = 'stdin'
self.log = get_logger(options, '%s: ' % self.name)
self.log = get_logger(options, filename=self.name)
def get_path(self, name):
return os.path.join(self.work_folder, name)
@@ -56,7 +56,7 @@ class PageContext:
self.pageno = pageno
self.pageinfo = pdf_context.pdfinfo[pageno]
self.log = get_logger(
pdf_context.options, '%s Page %d: ' % (pdf_context.name, pageno + 1)
pdf_context.options, filename=self.pdf_context.name, page=(self.pageno + 1)
)
def get_path(self, name):
@@ -73,5 +73,31 @@ def cleanup_working_files(work_folder, options):
shutil.rmtree(work_folder)
def get_logger(options=None, prefix=''):
return logging.getLogger(prefix)
class LogNameAdapter(logging.LoggerAdapter):
def process(self, msg, kwargs):
return '[%s] %s' % (self.extra['filename'], msg), kwargs
class LogNamePageAdapter(logging.LoggerAdapter):
def process(self, msg, kwargs):
return (
'[%s:%05u] %s' % (self.extra['filename'], self.extra['page'], msg),
kwargs,
)
def get_logger(options=None, prefix='ocrmypdf', filename=None, page=None):
log = logging.getLogger(prefix)
if filename and page:
adapter = LogNamePageAdapter(log, dict(filename=filename, page=page))
elif filename:
adapter = LogNameAdapter(log, dict(filename=filename))
else:
adapter = log
if options.quiet:
log.setLevel(logging.ERROR)
elif options.verbose >= 2:
log.setLevel(logging.DEBUG)
else:
log.setLevel(logging.INFO)
return adapter