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"})
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"})
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"})
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)
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: