python - 如何在Django中拦截所有对数据库的读取查询?

标签 python django signals

我需要拦截所有对数据库的查询并将它们写入文件日志。 因此,如果像 DELETE、UPDATE 和 CREATE 这样的基本操作我可以用信号框架拦截。但是 READ 查询呢?我怎样才能用信号捕获它们?

最佳答案

我认为 django 已经通过它的日志框架做到了这一点。如果您只想专门记录数据库查询。 您可以在设置中尝试以下操作。

LOGGING = {
    'handlers': {
        'query': {
            'level': 'DEBUG',
            'class': 'logging.FileHandler',
            'filename': 'logs/query.log',
            'formatter': 'verbose'
        },
    },
    'loggers': {
        'django.db.backends': {
            'handlers': ['query'],
            'propagate': False,
            'level': 'DEBUG',
        },
    }
}

关于python - 如何在Django中拦截所有对数据库的读取查询?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/42481175/

相关文章:

python - 如何对 OOo/LibreOffice Writer 文档进行简单操作,然后保存

python - 如何在 GAME 中检查记录是否存在

django - 有没有办法在 Django 中进行不区分大小写的 IN 查询?

c - 信号功能是否足够安全,可以忽略或恢复信号处理程序?

c - accept() 中断信号和 epoll_wait()

python - 让线程等待定时器或信号?

python - 如何将 pandas 数据框合并到现有的 reportlab 表中?

python 属性错误?

python - 如何修改web2py下载函数以在文件没有更改的情况下返回 "304 Not Modified"?

django - 为什么 Django Postgres JSONField 根据对象是创建还是更新而解码不同