从django / python或服务器日志获取更多信息

时间:2013-11-02 13:29:27

标签: python django redhat django-csrf dajaxice

我正在尝试调试“POST”请求错误,但我没有足够的信息。因此,我需要帮助才能找到更多。

我的tail -a中出现以下错误。这是它在尾部和日志内部显示的唯一内容。我假设尾部没有-v的详细信息。

==> python/logs/access_log-20131102-000000-EST <==
85.75.241.1 - - [02/Nov/2013:09:09:47 -0400] "POST /dajaxice/async.store_event/ HTTP/1.1" 500 16516 "http://example.com/" "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_9_0) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/30.0.1599.101 Safari/537.36"

(我将原来的example.com改为

我应该在哪里搜索以获取有关日志文件中此500错误的其他信息?我可以强制python告诉更多吗?

在本地服务器中,我得到以下内容,但没有说明具体内容。

[02/Nov/2013 14:22:15] "POST /dajaxice/async.store_event/ HTTP/1.1" 200 24

最后,代码1651624分别在500 16516200 24告诉我某些特定内容?我知道500/200是http代码,但其他是什么?

2 个答案:

答案 0 :(得分:0)

您正在查看访问日志。错误记录中记录的错误并不奇怪 - 您应该在那里查看更多详细信息。

(第二个值是响应中的字节数。)

答案 1 :(得分:0)

我知道,不应该在实时服务器上使用debug = True,但如果它是寻找错误的唯一方法,那么您应该考虑将其打开几分钟以获取更多信息。

此外,django调试工具栏可以提供帮助,例如:它可以显示没有写入文件但使用

引发的附加日志消息
import logging
logger = logging.getLogger(__name__) # Get an instance of a logger __name__ will be your app name

并使用例如

logger.debug(str(form.cleaned_data))

或者您自己编写记录器:

"""Logger to File"""
file_logger = logging.getLogger("file_logger")
file_logger.setLevel(logging.DEBUG)
formatter = logging.Formatter('%(asctime)s - %(message)s')
handler = logging.handlers.RotatingFileHandler(os.path.join(MEDIA_ROOT, "log", "filelogger_log.log"), maxBytes=10000000, backupCount=5)
handler.setFormatter(formatter)
file_logger.addHandler(handler)
相关问题