我想为每个数据库更改事件在我的应用程序中保留一个日志。类似于时间戳记+用户名+更改了模型的内容,写入了日志文件(只需记录已修改模型实例的日志,而不是更改的日志)。 signals和logging的组合看起来很自然。
因此,在模型的信号中,我会这样做:
import logging
...
logger = logging.getLogger(__name__)
logger.info("Order {} deleted by {}".format(order.barcode, request.user.email))
此问题是日志的信息级别已充满POST和GET请求。通常的建议是,如果您不希望日志文件中的所有那些请求日志都进入更高的级别,例如警告,但是在此处将这些事件标记为警告是没有意义的。另一个选择是按照建议here使用过滤器删除GET / POST日志。但是默认情况下,警告和错误级别日志事件也将最终出现在信息日志中,在这种情况下,这也不是所希望的行为,因此也必须将其过滤掉。该日志文件实际上只是用于记录“此用户更改了此模型实例”事件。
理想情况下,工作人员级别的用户也可以在现场访问此文件(只读),因此我正在考虑将此文件放入MEDIA目录中。如果日志中还包含错误跟踪,那可能是个坏主意。
这似乎是一个棘手的解决方案,我在这里俯瞰什么?
答案 0 :(得分:1)