Location of Django logs and errors

后端 未结 3 1756
北海茫月
北海茫月 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 08:55

    Add to your settings.py:

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

    And it will create a file called debug.log in the root of your. https://docs.djangoproject.com/en/1.10/topics/logging/

    0 讨论(0)
  • 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

    0 讨论(0)
  • 2020-12-04 09:18

    Setup https://docs.djangoproject.com/en/dev/topics/logging/ and then these error's will echo where you point them. By default they tend to go off in the weeds so I always start off with a good logging setup before anything else.

    Here is a really good example for a basic setup: https://ian.pizza/b/2013/04/16/getting-started-with-django-logging-in-5-minutes/

    Edit: The new link is moved to: https://github.com/ianalexander/ianalexander/blob/master/content/blog/getting-started-with-django-logging-in-5-minutes.html

    0 讨论(0)
提交回复
热议问题