因此,在进行开发时,我只需将settings.DEBUG
设置为True
,如果发生错误,我可以看到它的格式很好,具有良好的堆栈跟踪和请求信息。
但在某种生产站点上,我更愿意使用DEBUG=False
,并向访问者显示一些标准的错误500页面,其中包含我目前正在修复的这个bug的信息;)
同时,我希望有一些方法可以将所有这些信息(堆栈跟踪和请求信息)记录到我的服务器上的一个文件中-这样我就可以将其输出到我的控制台并观察错误滚动,每小时或类似的事情通过电子邮件将日志发送给我。
对于django站点,您会推荐哪些日志记录解决方案来满足这些简单的需求?我将应用程序作为fcgi
服务器运行,并使用apache web服务器作为前端(尽管考虑使用lighttpd)。
发布于 2011-06-18 19:58:02
正如已经提到的,Django Sentry是一个很好的选择,但要正确地设置它(作为一个单独的网站),需要做一些工作。如果您只想将所有内容记录到一个简单的文本文件中,下面是要放入settings.py
中的日志配置
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
},
},
}
发布于 2010-11-17 04:34:57
在另一个答案中提到的django-db-log已被替换为:
发布于 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/
两者之间的区别是什么?我几乎看不到任何东西,所以任何一个都足够了。
我已经使用了这两种方法,它们都工作得很好。
https://stackoverflow.com/questions/238081
复制相似问题