Heroku에 Django 로그가 보이지 않음


14

INFODjango가 만든 Heroku 로그에 로그 항목이 표시되지 않습니다 .

이것은 내 구성입니다.

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 인터페이스에서 로그 항목을보고 싶습니다. 내가 왜 그들을 보지 못하는지 아십니까?


당신이 print뭔가를 하면 아무것도 보 stdout입니까?
5

그것은 2 년이었다)
램 Rachum에게

3
여전히 답이 없습니다. =)
anatoly techtonik

1
@RamRachum 문제가 해결되면 답을 쓰거나 닫으십시오. 그렇지 않으면 사람들의 레이더에 계속 나타납니다.
Mike Fiedler

답변:


1

에서 파이썬 점점-시작 응용 프로그램, 태그되지 않은 로그 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',
        },
    },
}

따라서 Procfile을 포함하여 python-getting-started와 다르게 구성을 조정하면 잘 작동합니다.

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 = Falserepo의 코드에서 변경됨 DEBUG = True)입니다.

빈 문자열 키를 사용하는 것보다는 빈 문자열 키보다 더 구체적인 loggers항목 을 갖는 것이 ''좋습니다.

마지막으로, 로그 파일에이 정보 로그가 콘솔에 표시되지 않습니다 경우, 또는에게 Heroku는 로그 : 그것은에 대한 정보 로그 있다면 django.request그것은 단지로 이동됩니다 설정과 함께 'mail_admins'하기 때문 propagate입니다 False. 이 경우에는 propagate로 설정하는 것이 더 의미가 있다고 생각합니다 True.

당사 사이트를 사용함과 동시에 당사의 쿠키 정책개인정보 보호정책을 읽고 이해하였음을 인정하는 것으로 간주합니다.
Licensed under cc by-sa 3.0 with attribution required.