Location of Django logs and errors

后端 未结 3 1770
北海茫月
北海茫月 2020-12-04 08:31

I\'ve set up django server with nginx, and it gets 403 error in some of the pages.

Where can I find the django logs? where can I see the errors in detail?

3条回答
  •  [愿得一人]
    2020-12-04 09:15

    Logs are set in your settings.py file. A new, default project, looks like this:

    # A sample logging configuration. The only tangible logging
    # performed by this configuration is to send an email to
    # the site admins on every HTTP 500 error when DEBUG=False.
    # See http://docs.djangoproject.com/en/dev/topics/logging for
    # more details on how to customize your logging configuration.
    LOGGING = {
        'version': 1,
        'disable_existing_loggers': False,
        'filters': {
            'require_debug_false': {
                '()': 'django.utils.log.RequireDebugFalse'
            }
        },
        'handlers': {
            'mail_admins': {
                'level': 'ERROR',
                'filters': ['require_debug_false'],
                'class': 'django.utils.log.AdminEmailHandler'
            }
        },
        'loggers': {
            'django.request': {
                'handlers': ['mail_admins'],
                'level': 'ERROR',
                'propagate': True,
            },
        }
    }
    

    By default, these don't create log files. If you want those, you need to add a filename parameter to your handlers

        'applogfile': {
            'level':'DEBUG',
            'class':'logging.handlers.RotatingFileHandler',
            'filename': os.path.join(DJANGO_ROOT, 'APPNAME.log'),
            'maxBytes': 1024*1024*15, # 15MB
            'backupCount': 10,
        },
    

    This will set up a rotating log that can get 15 MB in size and keep 10 historical versions.

    In the loggers section from above, you need to add applogfile to the handlers for your application

    'loggers': {
            'django.request': {
                'handlers': ['mail_admins'],
                'level': 'ERROR',
                'propagate': True,
            },
            'APPNAME': {
                'handlers': ['applogfile',],
                'level': 'DEBUG',
            },
        }
    

    This example will put your logs in your Django root in a file named APPNAME.log

提交回复
热议问题