日志 – 没有看到Django登录Heroku

我没有在我的Heroku日志中看到Django制作的日志条目(在INFO级别).

这是我的配置:

LOGGING = {
    'version': 1,
    'disable_existing_loggers': False,
    'filters': {
        'require_debug_false': {
            '()': 'django.utils.log.RequireDebugFalse',
        },
        'require_debug_true': {
            '()': 'django.utils.log.RequireDebugTrue',
        },
        'not_development_filter': {
            '()': NotDevelopmentFilter,
        },
    },
    'handlers': {
        'console':{
            'level': 'INFO',
            'class': 'logging.StreamHandler',
        },
        'null': {
            'class': 'django.utils.log.NullHandler',
        },
        'mail_admins': {
            'level': 'ERROR',
            'filters': ['not_development_filter'],
            'class': 'django.utils.log.AdminEmailHandler',
            'include_html': True,
        }
    },
    'loggers': {
        '': {
            'handlers': ['mail_admins', 'console'],
            'level': 'INFO',
        },
        'django': {
            'handlers': ['console'],
        },
        'django.request': {
            'handlers': ['mail_admins'],
            'level': 'ERROR',
            'propagate': False,
        },
        'py.warnings': {
            'handlers': ['console'],
        },
    }
}

我想看看Heroku界面中的日志条目.知道为什么我没有在那里见到他们吗?

python-getting-started应用程序中,对于未标记django的日志,ERROR级别日志显示在heroku日志中,但INFO日志不显示.

为了使它适用于未标记django的日志,它需要如下所示的配置(与您的类似):

LOGGING = {
    'version': 1,
    'disable_existing_loggers': False,
    'handlers': {
        'console': {
            'class': 'logging.StreamHandler',
        },
    },
    'loggers': {
        '': {
            'handlers': ['console'],
            'level': 'INFO',
        },
        'django': {
            'handlers': ['console'],
            'level': 'INFO',
        },
    },
}

因此,如果您将配置调整为类似于python-getting-started,包括Procfile,它应该可行.

这是一个没有标记django的日志,我添加到views / hello.py:

import logging
logger = logging.getLogger(__name__)

# Create your views here.
def index(request):
    logger.error('testing logging!')
    logger.info('testing info logging')
    logger.debug('testing debug logging')

    # return HttpResponse('Hello from Python!')
    return render(request, 'index.html')

当我第一次尝试时,只显示错误日志.当我在前一个代码片段中添加日志配置时,会显示信息和错误日志.这都是DEBUG = False(从repo中的代码更改,其中DEBUG = True).

它可能更好,而不是使用空字符串键,所以记录所有内容,以获得比空字符串(”)更具体的记录器条目.

最后,在你的日志文件,还有的地方INFO日志不会控制台,或Heroku的日志上出现的情况:如果它是一个信息登录到django.request,与你的配置就只能去“mail_admins”,因为繁殖是假.我认为在这种情况下,将传播设置为True会更有意义.

翻译自:https://serverfault.com/questions/619650/not-seeing-django-logs-on-heroku

转载注明原文:日志 – 没有看到Django登录Heroku