首页
学习
活动
专区
工具
TVP
发布
社区首页 >问答首页 >如何在django站点上记录服务器错误

如何在django站点上记录服务器错误
EN

Stack Overflow用户
提问于 2008-10-26 22:37:43
回答 5查看 95.9K关注 0票数 183

因此,在进行开发时,我只需将settings.DEBUG设置为True,如果发生错误,我可以看到它的格式很好,具有良好的堆栈跟踪和请求信息。

但在某种生产站点上,我更愿意使用DEBUG=False,并向访问者显示一些标准的错误500页面,其中包含我目前正在修复的这个bug的信息;)

同时,我希望有一些方法可以将所有这些信息(堆栈跟踪和请求信息)记录到我的服务器上的一个文件中-这样我就可以将其输出到我的控制台并观察错误滚动,每小时或类似的事情通过电子邮件将日志发送给我。

对于django站点,您会推荐哪些日志记录解决方案来满足这些简单的需求?我将应用程序作为fcgi服务器运行,并使用apache web服务器作为前端(尽管考虑使用lighttpd)。

EN

回答 5

Stack Overflow用户

发布于 2011-06-18 19:58:02

正如已经提到的,Django Sentry是一个很好的选择,但要正确地设置它(作为一个单独的网站),需要做一些工作。如果您只想将所有内容记录到一个简单的文本文件中,下面是要放入settings.py中的日志配置

代码语言:javascript
复制
LOGGING = {
    'version': 1,
    'disable_existing_loggers': False,
    'handlers': {
        # Include the default Django email handler for errors
        # This is what you'd get without configuring logging at all.
        'mail_admins': {
            'class': 'django.utils.log.AdminEmailHandler',
            'level': 'ERROR',
             # But the emails are plain text by default - HTML is nicer
            'include_html': True,
        },
        # Log to a text file that can be rotated by logrotate
        'logfile': {
            'class': 'logging.handlers.WatchedFileHandler',
            'filename': '/var/log/django/myapp.log'
        },
    },
    'loggers': {
        # Again, default Django configuration to email unhandled exceptions
        'django.request': {
            'handlers': ['mail_admins'],
            'level': 'ERROR',
            'propagate': True,
        },
        # Might as well log any errors anywhere else in Django
        'django': {
            'handlers': ['logfile'],
            'level': 'ERROR',
            'propagate': False,
        },
        # Your own app - this assumes all your logger names start with "myapp."
        'myapp': {
            'handlers': ['logfile'],
            'level': 'WARNING', # Or maybe INFO or DEBUG
            'propagate': False
        },
    },
}
票数 80
EN

Stack Overflow用户

发布于 2010-11-17 04:34:57

在另一个答案中提到的django-db-log已被替换为:

https://github.com/dcramer/django-sentry

票数 40
EN

Stack Overflow用户

发布于 2008-10-27 13:33:44

显然James是正确的,但是如果您想在数据存储中记录异常,有一些开源解决方案已经可用:

1) http://code.google.com/p/django-crashlog/:CrashLog是个不错的选择

2)数据库日志也是一个很好的选择:http://code.google.com/p/django-db-log/

两者之间的区别是什么?我几乎看不到任何东西,所以任何一个都足够了。

我已经使用了这两种方法,它们都工作得很好。

票数 30
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/238081

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档