【发布时间】:2018-02-14 09:16:08
【问题描述】:
我想在我的实时 Django 站点上实现日志记录,这样我就可以看到错误,所以我只是在我的本地开发服务器上练习使用它。
我在设置中添加了这段代码:
LOGGING = {
'version': 1,
'disable_existing_loggers': False,
'handlers': {
'console': {
'class': 'logging.StreamHandler',
},
'file': {
'level': 'DEBUG',
'class': 'logging.FileHandler',
'filename': 'log.django',
},
},
'loggers': {
'django': {
'handlers': ['console','file'],
'level': os.getenv('DJANGO_LOG_LEVEL', 'DEBUG'),
},
},
}
当我启动开发服务器时,它返回了这个:
Performing system checks...
System check identified no issues (0 silenced).
(0.009)
SELECT name, type FROM sqlite_master
WHERE type in ('table', 'view') AND NOT name='sqlite_sequence'
ORDER BY name; args=None
(0.000) SELECT "django_migrations"."app", "django_migrations"."name" FROM "django_migrations"; args=()
February 14, 2018 - 08:38:57
Django version 1.11.8, using settings 'draft1.settings'
Starting development server at http://127.0.0.1:8000/
Quit the server with CONTROL-C.
但这并没有告诉我任何信息或显示错误。我希望能够追溯或记录所有错误。否则我无法在我的实时服务器中看到我的 Django 代码中的错误。
【问题讨论】:
-
但是...您没有任何错误,甚至还没有任何请求。
-
好的,所以我刚刚发起了一个错误的请求。它以很难破译的 SQL 格式返回错误代码。有什么方法可以简单地复制普通的 Django
DEBUG = True回溯?如果不使用日志记录,它无论如何都会显示回溯,但在我的实时 Django 服务器上它不会。 -
我不明白您所说的“SQL 格式”错误代码是什么意思。
-
例如这是错误代码中的一个 sn-p(它很长):
False, '', '2018-02-14 09:22:34.850650', '1', 'news', False, 0, 8546, 2) (0.001) SELECT "post_postscore"."id", "post_postscore"."user_id", "post_postscore"."post_id", "post_postscore"."upvotes", "post_postscore"."downvotes" FROM "post_postscore" WHERE "post_postscore"."post_id" = 2; args=(2,) -
这段代码就是这样做的;您将所有内容都记录到控制台和“log.django”文件中,您应该在其中看到所有回溯。