Python logging - путь FileHandler на основе имени регистратора? - PullRequest
0 голосов
/ 07 января 2020

Можно ли настроить обработчик, используя имя регистратора?

У меня есть специальная папка журнала. У каждого пользователя есть свой журнал, который он может скачать.

Я называю этот журнал:

getLogger('engine.user.<current_user.pk>')

Но я не знаю, как задать разные пути к файлам для разных пользователей, чтобы у каждого пользователя был свой собственный файл журнала /media/logs/<user.pk>.log

Единственный известный мне способ - это динамически добавлять обработчик, когда я использую регистратор, но я хотел бы сделать это в конфигурации регистрации, если это возможно.

LOGGING = {
    'version': 1,
    'disable_existing_loggers': False,
    'handlers': {
        'user': {
            'level': 'DEBUG',
            'class': 'logging.FileHandler',
            'filename': '/media/logs/<user.pk>.log',
            'formatter': 'verbose',
        },

    },
    'loggers': {
        ...
        'engine.user': {
            'handlers': [],
            'level': 'DEBUG',
            'propagate': True,
        },
        'engine.user.*': {
            'handlers': ['user'],
            'level': 'DEBUG',
            'propagate': True,
        },
    },
}

Возможно ли это?

...