Django LOGGING - Как изменить имя атрибута фильтра по формату

У меня следующие настройки:

LOGGING = {
'version': 1,
'disable_existing_loggers': True,
'filters': {
    'require_debug_false': {
        '()': 'django.utils.log.RequireDebugFalse'
    },
    'some_id': {
                '()': 'my.special.filter'
    },
},
'formatters': {
    'json': {
        '()': 'my.special.formatter',
        'format': '%(thread)d\t%(message)s'
    },
...

фильтр добавляет "some_id" в журнал, так что вывод выглядит следующим образом:

{"thread": 140155333515008, "message": "some log msg", "some_id": "123456"}

Я хочу изменить дополнительный атрибут "some_id", чтобы вывод выглядел следующим образом:

{"thread": 140155333515008, "message": "some log msg", "some-id": "123456"}

Я видел, что это можно сделать с помощью CustomAdapter но у меня много "logger = logging.getLogger(...)", поэтому я не могу использовать это.

Как изменить имя выходного атрибута?

на данный момент решение следующее:

class my.special.formatter(JsonFormatter):
def __init__(self, *args, **kwargs):
    super(my.special.formatter, self).__init__(*args, **kwargs)

def format(self, record):
    if hasattr(record, 'some_id'):
        record.__setattr__('some-id', record.some_id)
        record.__delattr__('some_id')

    return super(my.special.formatter, self).format(record)

но он не идеален...

Вернуться на верх