Posts Como remover style/cores do json logger
Post
Cancel

Como remover style/cores do json logger

Ao utilizar a lib python python-json-logger==2.0.1, me deparei com o problema em como remover as cores dos logs, uma vez que "bagunçavam" os logs com código como "\x1b[31;20m", que basicamente representam alguma cor, não fazendo sentido para o json-logger.

Examplo:

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
from datetime import datetime

import click
from flask import request
from pythonjsonlogger import jsonlogger

class CustomJsonFormatter(jsonlogger.JsonFormatter):
    def add_fields(self, log_record, record, message_dict):

        if isinstance(record.msg, str): # remove msg style
            record.msg = click.unstyle(record.msg)
        if isinstance(record.message, str): # remove msg style
            record.message = click.unstyle(record.message)

        super().add_fields(log_record, record, message_dict)

        log_record["timestamp"] = datetime.now().strftime("%Y-%m-%dT%H:%M:%S.%fZ")
        if request:
            log_record["path"] = request.path
            log_record["method"] = request.method
This post is licensed under CC BY 4.0 by the author.