Django - 可以安全地将调试数据存储在request.META

时间:2017-03-19 02:49:05

标签: python django exception logging

众所周知,如果您的django应用程序出现错误并且您有debug=True,那么您会看到类似

的内容

enter image description here

虽然我不确定,但我认为如果debug=False,我们仍然可以访问同样的事情,除非django会将此html文件通过电子邮件发送给我们。

遵循这个假设(有人请确认),我的任务是在此例外模板中添加另一部分(USER,GET,POST,FILES,ETC [此处的新定制部分])。

但是,由于我不知道如何做到这一点,我认为更简单的方法就是将一堆自定义键值设置为request.META

这样做是否安全?比如说一个API密钥或什么?所以当出现问题时,我会在格式化日志的META中看到它?

2 个答案:

答案 0 :(得分:1)

答案 1 :(得分:1)

添加例外很容易,例如:

class IamHandsome(Exception):
    """ the user is too handsome """
    pass

在你的逻辑中调用它

# ...
if userIsTooHansome():
   raise IamHandsome

然后你只需要使用try catch block

try:
   # calling some function with exception logic
   # ...
except IamHandsome as e:
   pass

将其置于元(特别是秘密)中是不可取的。如果你能看到它,那么其他人也可以做到。

如果您想直接看到它,可以使用log settings将其作为日志文件然后访问它(假设您使用的是* nix)

tail -f log_location/django_log_file.log