Django日志的位置和错误


77

我已经用nginx设置了django服务器,它在某些页面上出现403错误。

在哪里可以找到django日志?在哪里可以详细查看错误?


您在nginx和Django之间运行什么?古尼康?您正在使用主管吗?
约瑟夫

您是否在settings.py文件中设置DEBUG = True?如果是这样,则在错误看起来像i.imgur.com/TWL6f.png的情况下,则可能是django问题。如果403错误不是详细消息,那么我猜这是一个nginx问题。如果是Django问题,请使用控制台启动django服务器,然后转到显示错误的页面。希望控制台输出足以让您找出问题所在。
user1876508 2013年

Answers:


76

日志设置在您的settings.py文件中。一个新的默认项目如下所示:

# 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,
        },
    }
}

默认情况下,这些文件不会创建日志文件。如果需要这些,则需要在其中添加一个filename参数handlers

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

这将设置一个循环日志,日志大小为15 MB,并保留10个历史版本。

loggers从上面的部分,你需要添加applogfilehandlers您的应用程序

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

本示例将您的日志放在Django根目录中的一个名为 APPNAME.log


4
logger = logging.getLogger('APPNAME') 在这种情况下做
Bob Yoplait

您必须为每条线添加此行views.py
Baschdl

30

添加到您的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,
        },
    },
}

它将debug.log在您的根目录中创建一个名为的文件。 https://docs.djangoproject.com/en/1.10/topics/logging/


6
在Apache2上,wsgi将尝试在中创建文件/var/www/debug.log。如果您的Django专案不在/var/www/目录中,则会建立2个独立的档案。请'filename': os.path.join(BASE_DIR, 'debug.log'),改用。
Suraj

接受的答案对我不起作用。这适用于Django 2!
caravana_942 '19

11

设置https://docs.djangoproject.com/en/dev/topics/logging/,然后这些错误将在您指向它们的位置回显。默认情况下,它们倾向于在杂草中脱落,因此在进行其他任何操作之前,我总是以良好的日志记录设置开始。

这是一个基本设置的好例子:https : //ian.pizza/b/2013/04/16/getting-started-with-django-logging-in-5-minutes/

编辑:新链接移至:https : //github.com/ianalexander/ianalexander/blob/master/content/blog/getting-started-with-django-logging-in-5-minutes.html


1
请注意,伊恩将他的域名重命名为ian.pizza,因此这是实际的链接:ian.pizza/b/2013/04/16/…– 2016
1
By using our site, you acknowledge that you have read and understand our Cookie Policy and Privacy Policy.
Licensed under cc by-sa 3.0 with attribution required.