首页 > 解决方案 > Python 日志记录 - 基于记录器名称的 FileHandler 路径?

问题描述

是否可以使用记录器名称配置处理程序?

我有一个特殊的日志文件夹。每个用户都有自己的日志,他们可以下载。

我称这个日志:

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,
        },
    },
}

可能吗?

标签: pythonlogging

解决方案


推荐阅读