Fix logging into multiple files

When running tests in one process, only one logger was used and each
testcase added its own file handler, which resulted in logs appearing in
multiple files. Fix this by restoring the creation of new loggers
for each testcase and only reuse the stream handler from parent process.

Change-Id: I5b8471e041dc769128fddb433d33812bfcb5ecf6
Signed-off-by: juraj.linkes <juraj.linkes@pantheon.tech>
This commit is contained in:
juraj.linkes
2018-11-09 11:58:54 +01:00
committed by Florin Coras
parent d5969e4a7b
commit dfb5f2aff3
3 changed files with 6 additions and 7 deletions

View File

@ -25,7 +25,7 @@ from vpp_lo_interface import VppLoInterface
from vpp_papi_provider import VppPapiProvider from vpp_papi_provider import VppPapiProvider
from vpp_papi.vpp_stats import VPPStats from vpp_papi.vpp_stats import VPPStats
from log import RED, GREEN, YELLOW, double_line_delim, single_line_delim, \ from log import RED, GREEN, YELLOW, double_line_delim, single_line_delim, \
getLogger, colorize get_logger, colorize
from vpp_object import VppObjectRegistry from vpp_object import VppObjectRegistry
from util import ppp, is_core_present from util import ppp, is_core_present
from scapy.layers.inet import IPerror, TCPerror, UDPerror, ICMPerror from scapy.layers.inet import IPerror, TCPerror, UDPerror, ICMPerror
@ -369,10 +369,9 @@ class VppTestCase(unittest.TestCase):
gc.collect() # run garbage collection first gc.collect() # run garbage collection first
random.seed() random.seed()
cls.print_header(cls) cls.print_header(cls)
if not hasattr(cls, 'logger'): cls.logger = get_logger(cls.__name__)
cls.logger = getLogger(cls.__name__) if hasattr(cls, 'parallel_handler'):
else: cls.logger.addHandler(cls.parallel_handler)
cls.logger.name = cls.__name__
cls.tempdir = tempfile.mkdtemp( cls.tempdir = tempfile.mkdtemp(
prefix='vpp-unittest-%s-' % cls.__name__) prefix='vpp-unittest-%s-' % cls.__name__)
cls.stats_sock = "%s/stats.sock" % cls.tempdir cls.stats_sock = "%s/stats.sock" % cls.tempdir

View File

@ -50,7 +50,7 @@ scapy_logger = logging.getLogger("scapy.runtime")
scapy_logger.setLevel(logging.ERROR) scapy_logger.setLevel(logging.ERROR)
def getLogger(name): def get_logger(name):
logger = logging.getLogger(name) logger = logging.getLogger(name)
logger.setLevel(logging.DEBUG) logger.setLevel(logging.DEBUG)
return logger return logger

View File

@ -120,7 +120,7 @@ def test_runner_wrapper(suite, keep_alive_pipe, stdouterr_queue,
finished_pipe, result_pipe, logger): finished_pipe, result_pipe, logger):
sys.stdout = stdouterr_queue sys.stdout = stdouterr_queue
sys.stderr = stdouterr_queue sys.stderr = stdouterr_queue
VppTestCase.logger = logger VppTestCase.parallel_handler = logger.handlers[0]
result = VppTestRunner(keep_alive_pipe=keep_alive_pipe, result = VppTestRunner(keep_alive_pipe=keep_alive_pipe,
descriptions=descriptions, descriptions=descriptions,
verbosity=verbose, verbosity=verbose,