Handle external package logs from fastapi middleware

73 Views Asked by At

We are hitting openai api from our fastapi application, We have middleware where we format the logs to json. There are some special characters in logs , and we need to remove them before we display the logs in console. We have special character remover function in middleware , it works perfectly for logs from application , but for logs from openai the special character is not removed. I placed a debugger in function , and call is not coming to this function if it is from openai.

class FilterEmojis(logging.Filter):

    def filter(self, record):
        record.msg = re.sub(r'[^\x00-\x7F]+',' ', str(record.msg))
        return record




logger = logging.root
handler = logging.StreamHandler()
handler.setFormatter(formatter)
logger.handlers = [handler]
logger.setLevel(logging.DEBUG)
logger.addFilter(FilterEmojis())
logging.getLogger("uvicorn.access").disabled = True

"level": "DEBUG", "conversation_id": "ap-1", "name": "openai", "message": "api_version=2023-07-01-preview data='{"messages": [{"role": "system", "content": "\\nWelcome to ai \\ud83e\\udd16\\ud83d\\udee9\\ufe0f"

0

There are 0 best solutions below