Skip to content

Commit 7b4cbfe

Browse files
author
Ivan Ivanou
committed
Fix patching of non-RP loggers
1 parent 59e55b9 commit 7b4cbfe

File tree

2 files changed

+16
-6
lines changed

2 files changed

+16
-6
lines changed

README.rst

Lines changed: 12 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -95,6 +95,14 @@ in conftest.py:
9595

9696
.. code-block:: python
9797
98+
import logging
99+
import sys
100+
101+
import pytest
102+
103+
from pytest_reportportal import RPLogger, RPLogHandler
104+
105+
98106
@pytest.fixture(scope="session")
99107
def rp_logger(request):
100108
import logging
@@ -104,11 +112,13 @@ in conftest.py:
104112
# configured and started.
105113
if hasattr(request.node.config, 'py_test_service'):
106114
# Import Report Portal logger and handler to the test module.
107-
from pytest_reportportal import RPLogger, RPLogHandler
108115
logging.setLoggerClass(RPLogger)
109116
rp_handler = RPLogHandler(request.node.config.py_test_service)
117+
# Add additional handlers if it is necessary
118+
console_handler = logging.StreamHandler(sys.stdout)
119+
console_handler.setLevel(logging.INFO)
120+
logger.addHandler(console_handler)
110121
else:
111-
import sys
112122
rp_handler = logging.StreamHandler(sys.stdout)
113123
# Set INFO level for Report Portal handler.
114124
rp_handler.setLevel(logging.INFO)

pytest_reportportal/rp_logging.py

Lines changed: 4 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -142,14 +142,14 @@ def makeRecord(self, name, level, fn, lno, msg, args, exc_info,
142142
return record
143143
return makeRecord
144144

145-
if not logger_class == RPLogger and not hasattr(logger_class, "_patched"):
145+
if not issubclass(logger_class, RPLogger):
146146
logger_class._log = wrap_log(logger_class._log)
147147
logger_class.makeRecord = wrap_makeRecord(logger_class.makeRecord)
148-
logger_class._patched = True
148+
logging.setLoggerClass(RPLogger)
149149
yield
150150

151151
finally:
152-
if hasattr(logger_class, '_patched'):
152+
if not issubclass(logger_class, RPLogger):
153153
logger_class._log = original_log
154154
logger_class.makeRecord = original_makeRecord
155-
del logger_class._patched
155+
logging.setLoggerClass(logger_class)

0 commit comments

Comments
 (0)