ไม่เห็น Django บันทึกใน Heroku


14

ฉันไม่เห็นรายการบันทึก (ที่ระดับหนึ่งINFO) ทำโดย Django ในบันทึก 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?
Anatoly techtonik

เป็นเวลาสองปีแล้ว)
Ram 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 หวังว่ามันจะทำงานได้ดี

นี่คือบันทึกที่ไม่ได้ติดแท็ก 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)

มันอาจจะดีกว่าแทนที่จะมีคีย์สตริงที่ว่างเปล่าดังนั้นทุกอย่างจึงถูกบันทึกไว้เพื่อให้มีloggersรายการที่เฉพาะเจาะจงมากกว่าแค่สตริงว่างเปล่า ( '')

สุดท้ายในแฟ้มบันทึกของคุณมีกรณีที่บันทึกข้อมูลจะไม่ปรากฏบนคอนโซลหรือ Heroku บันทึก: ถ้ามันเป็นบันทึกข้อมูลที่จะdjango.requestมีการตั้งค่าของคุณก็จะไป'mail_admins'เพราะมีpropagate Falseผมคิดว่าในกรณีนี้มันจะทำให้รู้สึกมากขึ้นสำหรับการตั้งค่าให้propagateTrue

โดยการใช้ไซต์ของเรา หมายความว่าคุณได้อ่านและทำความเข้าใจนโยบายคุกกี้และนโยบายความเป็นส่วนตัวของเราแล้ว
Licensed under cc by-sa 3.0 with attribution required.