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