Source code

Revision control

Copy as Markdown

Other Tools

import pytest
from mozlog.formatters import ErrorSummaryFormatter, MachFormatter
from mozlog.handlers import StreamHandler
from mozlog.structuredlog import StructuredLogger
from six import StringIO
@pytest.fixture
def get_logger():
# Ensure a new state instance is created for each test function.
StructuredLogger._logger_states = {}
formatters = {
"mach": MachFormatter,
"errorsummary": ErrorSummaryFormatter,
}
def inner(name, **fmt_args):
buf = StringIO()
fmt = formatters[name](**fmt_args)
logger = StructuredLogger("test_logger")
logger.add_handler(StreamHandler(buf, fmt))
return logger
return inner