Ejemplo n.º 1
0
    def send(
        cls,
        logger: HttpLogger,
        request,
        response,
        response_body: Optional[str] = None,
        request_body: Optional[str] = None,
        now=None,
        interval=None,
    ) -> None:  # TODO: missing type hints

        if not logger.enabled:
            return

        # copy details from request & response
        message: List[List[str]] = cls.build(request, response, response_body,
                                             request_body)

        # copy details from active session
        if logger.rules.copy_session_field:
            session_dict = logger.conn.__dict__
            if session_dict:
                for r in logger.rules.copy_session_field:
                    for d0 in session_dict:
                        if match(r.param1, d0):
                            d1 = session_dict[d0]
                            if d0 == "cookies":
                                d1 = d1.get_dict()
                            if isinstance(d1, dict):
                                d1 = {k: v for k, v in d1.items() if v}
                            message.append(
                                [f"session_field:{d0.lower()}",
                                 str(d1)])

        # add timing details
        message.append([
            "now",
            str(now) if now is not None else str(round(time() * 1000))
        ])
        if interval is not None:
            message.append(["interval", interval])

        logger.submit_if_passing(message)
Ejemplo n.º 2
0
    def send(cls,
             logger: HttpLogger,
             request,
             response,
             response_body: Optional[str] = None,
             request_body: Optional[str] = None,
             now=None,
             interval=None) -> None:  # todo missing type hints

        if not logger.enabled: return

        # copy details from request & resonse
        message = cls.build(request, response, response_body, request_body)

        # todo copy details from active session

        # add timing details
        message.append([
            'now',
            str(now) if now is not None else str(round(time() * 1000))
        ])
        if interval is not None: message.append(['interval', interval])

        logger.submit_if_passing(message)