From 16af5face477b8d298fe41ab16b5a64b11efd139 Mon Sep 17 00:00:00 2001 From: Selwin Ong Date: Fri, 31 Jul 2020 10:54:27 +0700 Subject: [PATCH] log messages < error is now output to stdout instead of stderr --- rq/logutils.py | 8 +++++++- rq/worker.py | 2 +- 2 files changed, 8 insertions(+), 2 deletions(-) diff --git a/rq/logutils.py b/rq/logutils.py index 324553b2..5759a112 100644 --- a/rq/logutils.py +++ b/rq/logutils.py @@ -3,6 +3,7 @@ from __future__ import (absolute_import, division, print_function, unicode_literals) import logging +import sys from rq.utils import ColorizingStreamHandler from rq.defaults import (DEFAULT_LOGGING_FORMAT, @@ -15,9 +16,14 @@ def setup_loghandlers(level=None, date_format=DEFAULT_LOGGING_DATE_FORMAT, if not _has_effective_handler(logger): formatter = logging.Formatter(fmt=log_format, datefmt=date_format) - handler = ColorizingStreamHandler() + handler = ColorizingStreamHandler(stream=sys.stdout) handler.setFormatter(formatter) + handler.addFilter(lambda record: record.levelno < logging.ERROR) + error_handler = ColorizingStreamHandler(stream=sys.stderr) + error_handler.setFormatter(formatter) + error_handler.addFilter(lambda record: record.levelno >= logging.ERROR) logger.addHandler(handler) + logger.addHandler(error_handler) if level is not None: # The level may be a numeric value (e.g. when using the logging module constants) diff --git a/rq/worker.py b/rq/worker.py index 6868f752..bae12f19 100644 --- a/rq/worker.py +++ b/rq/worker.py @@ -974,7 +974,7 @@ class Worker(object): def handle_exception(self, job, *exc_info): """Walks the exception handler stack to delegate exception handling.""" exc_string = Worker._get_safe_exception_string( - traceback.format_exception_only(*exc_info[:2]) + traceback.format_exception(*exc_info) + traceback.format_exception(*exc_info) ) self.log.error(exc_string, exc_info=True, extra={ 'func': job.func_name,