Exemplo n.º 1
0
    def test_bytes_nop(self):
        """
        If the value is already unicode, don't do anything.
        """
        ud = UnicodeDecoder()

        assert {"foo": "b\u2013r"} == ud(None, None, {"foo": "b\u2013r"})
Exemplo n.º 2
0
    def test_passes_arguments(self):
        """
        Encoding options are passed into the encoding call.
        """
        ud = UnicodeDecoder("utf-8", "ignore")

        assert {"foo": ""} == ud(None, None, {"foo": b"\xa1\xa4"})
Exemplo n.º 3
0
    def test_decodes(self):
        """
        Byte strings get decoded (as UTF-8 by default).
        """
        ud = UnicodeDecoder()

        assert {"foo": "b\xe4r"} == ud(None, None, {"foo": b"b\xc3\xa4r"})
Exemplo n.º 4
0
def setup(sentry: str, debug: bool = False) -> None:
    processors = [
        filter_by_level,
        add_log_level,
        add_logger_name,
        PositionalArgumentsFormatter(),
        StackInfoRenderer(),
        format_exc_info,
        UnicodeDecoder(),
    ]

    configure(
        logger_factory=LoggerFactory(),
        wrapper_class=BoundLogger,
        cache_logger_on_first_use=True,
    )

    if debug:
        styles = ConsoleRenderer.get_default_level_styles()
        styles["debug"] = DIM
        processors += [
            TimeStamper(fmt="%Y-%m-%d %H:%M:%S"),
            ConsoleRenderer(level_styles=styles),
        ]
    else:
        handler = StreamHandler()
        formatter = CustomJsonFormatter("%(levelname)s %(name)s %(message)s")
        handler.setFormatter(formatter)
        for module in ("tornado", "tortoise", "aiomysql"):
            getLogger(module).addHandler(handler)

        sentry_logging = LoggingIntegration(level=INFO, event_level=ERROR)
        init(sentry, integrations=[sentry_logging])
        processors.append(JSONRenderer())

    handler = StreamHandler()
    configure(processors=processors)
    log = get_logger("api")
    log.addHandler(handler)
    log.propagate = False
    log.setLevel(DEBUG if debug else INFO)
Exemplo n.º 5
0
from functools import wraps
from logging import INFO, FileHandler
from os import environ, makedirs
from os.path import exists, join

from ansible.plugins.callback import CallbackBase
from structlog import configure, get_logger
from structlog.stdlib import BoundLogger, LoggerFactory, add_log_level
from structlog.processors import JSONRenderer, TimeStamper, UnicodeDecoder, format_exc_info
from yaml import dump

configure(processors=[
    add_log_level,
    TimeStamper(fmt="iso"),
    format_exc_info,
    UnicodeDecoder(),
    JSONRenderer(),
],
          context_class=dict,
          logger_factory=LoggerFactory(),
          wrapper_class=BoundLogger,
          cache_logger_on_first_use=True)
logger = get_logger('origin-ci-tool')
logger.setLevel(INFO)


@contextmanager
def bind_logger(**kwargs):
    global logger
    logger = logger.bind(**kwargs)
    try: