看不到我的日志消息-Django / Apache / mod_wsgi

时间:2018-08-23 17:38:35

标签: django apache mod-wsgi

设置:

LOGGING = {
    'version': 1,
    'disable_existing_loggers': False,
    'handlers': {
        'file': {
            'level': 'DEBUG',
            'class': 'logging.FileHandler',
            'filename': '/Users/user/djangoLogs/debug.log',
        },
    },
    'loggers': {
        'django': {
            'handlers': ['file'],
            'level': 'DEBUG',
            'propagate': True,
        },
    },
}

我已将以下内容添加到我的views.py

logger = logging.getLogger(__name__)

但是,我在debug.log中看不到任何日志消息。我确实看到了一些Django日志/错误消息,所以看来本地Django日志正在运行。

这是我希望看到的日志消息示例:

try:
    response.raise_for_status()
except requests.exceptions.HTTPError as e:
    logger.debug("get_thumbnails call failed: ", e)

httpd.conf

#
# LogLevel: Control the number of messages logged to the error_log.
# Possible values include: debug, info, notice, warn, error, crit,
# alert, emerg.
#
LogLevel debug

mod-wsgi版本为4.6.4 Django版本是2.1

1 个答案:

答案 0 :(得分:1)

Django带有in-built logger。使用它来生成日志。

示例

# settings.py
LOGGING = {
    'version': 1,
    'disable_existing_loggers': False,
    'handlers': {
        'file': {
            'level': 'DEBUG',
            'class': 'logging.FileHandler',
            'filename': '/path/to/django/debug.log',
        },
        'your_handler': {
            'level': 'DEBUG',
            'class': 'logging.FileHandler',
            'filename': '/path/to/logs'
        }
    },
    'loggers': {
        'django': {
            'handlers': ['file'],
            'level': 'DEBUG',
            'propagate': True,
        },
        'your_logger': {
            'handlers': ['your_handler'],
            'level': 'DEBUG',
            'propagate': True
        }
    },
}

编辑

更新了以上代码,以包含名为your_logger的自定义记录器,您可以从视图中使用该记录器进行写入。

视图

logger = logging.getLogger('your_logger')