django:如何为 SuspiciousOperation 异常创建自定义日志过滤器?

2024-01-31

迁移到 1.11(从 1.8 )后,我收到了一些SuspiciousOperation记录错误。

它似乎来自 JS 请求,如果用户移动鼠标,它会保持会话活动。但这并不重要。

我怎样才能过滤这个异常?

我尝试过的:

我刚刚在某处创建了一个过滤器:

import logging

from django.core.exceptions import SuspiciousOperation

class StopSuspiciousOperation(logging.Filter):
    def filter(self, record):
        if record.exc_info:
            exc_value = record.exc_info[1]
            return isinstance(exc_value, SuspiciousOperation)
        return True

然后我将此过滤器添加到我的配置中:

LOGGING = {
    'version': 1,
    'disable_existing_loggers': False,
    'filters': {
        'require_debug_false': {
            '()': 'django.utils.log.RequireDebugFalse',
        },
        'stop_suspicious_operation': {
            '()': 'aula.utils.loggingFilters.StopSuspiciousOperation',
        }
    },
    'handlers': {
        'mail_admins': {
            'level': 'ERROR',
            'filters': ['require_debug_false',
                        'stop_suspicious_operation',], #<-- here
            'class': 'django.utils.log.AdminEmailHandler'
        }
    },
    'loggers': {
        'django.request': {
            'handlers': ['mail_admins'],
            'level': 'ERROR',
            'propagate': True,
        },
    }
}

但我仍然收到错误:

内部服务器错误:/keepalive

SuspiciousOperation at /keepalive
The request's session was deleted before the request completed. The user may have logged out in a concurrent request, for example.

Request Method: GET
Request URL: https://XXXXXX/YYYYYY
Django Version: 1.11.9
Python Executable: /usr/bin/python
Python Version: 2.7.3

我不确定正确的答案,但我认为 django 正在 WSGI 级别捕获 SuspiciousOperation 并记录错误。看:https://docs.djangoproject.com/en/dev/ref/exceptions/#suspiciousoperation https://docs.djangoproject.com/en/dev/ref/exceptions/#suspiciousoperation

如果 SuspiciousOperation 异常达到 WSGI 处理程序级别, 记录在错误级别并导致 HttpResponseBadRequest。

您可能只想过滤掉这样的不良请求:

from logging import LogRecord


def filter_400(record: LogRecord) -> bool:
    '''Filter out HTTP Error Code 400 Bad Request'''
    return record.status_code != 400
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

django:如何为 SuspiciousOperation 异常创建自定义日志过滤器? 的相关文章

  • 如何使用 Django (Python) 登录表单?

    我在 Django 中构建了一个登录表单 现在我遇到了路由问题 当我选择登录按钮时 表单不会发送正确的遮阳篷 我认为前端的表单无法从 查看 py 文件 所以它不会发送任何 awnser 并且登录过程无法工作 该表单是一个简单的静态 html
  • django.db.utils.OperationalError:Shell 命令 forloop 中外键不匹配

    我正在研究以下两个 Django 模型 以用户作为外键的组织模型和以组织作为外键的类别列表 以下是Models Create your models here from django contrib auth models import U
  • Django - 使用多种表单

    我想做的是在一个页面中管理多个表单 我知道有表单集 并且我知道表单管理是如何工作的 但是我的想法存在一些问题 只是为了帮助您想象我的问题是什么 我将使用 django 示例模型 from django db import models cl
  • 构建一个两阶段的 Django 管理表单来添加对象?

    是否可以构建一个两阶段表单来在 Django admin 中创建对象 当管理员用户访问时 admin my app article add 我想显示一些选项 然后 应用程序将显示创建页面 其中包含基于所做选择的预先计算的字段 你可以覆盖ad
  • Django - 将 js 变量传递给 django 视图

    我的问题与 Google 地图 JavaScript API 有关 更具体的是自动完成功能 我已将自动完成功能作为搜索栏添加到我的测试站点 效果很好 但现在我想将所选参数传递给 Django 视图 我被困在这里了 这就是我的模板中的内容
  • 使用 Django 发出 HTTP 请求并反序列化输出

    因此 我对整个 Web 开发几乎完全陌生 但已经投入到一个使用 Django 从 Web 服务中提取和解析数据的副项目中 并且即使在查看 Django 时 我也很难准确地理解事情是如何工作的 文档 在 Django 中 我已经完成了所有设置
  • 在 django-import-export 中导入 m2m 关系

    使用应用程序 django import export 以下是其中一个模型的配置示例 class ImportExportAdsTypeResource resources ModelResource class Meta model Ad
  • IIS 未使用 PyISAPe 链接到 Django

    我正在尝试在基于 IIS 的服务器上使用 Django 运行网站 我遵循了主网站上的所有说明 http code djangoproject com wiki DjangoOnWindowsWithIISAndSQLServer http
  • 运行连接到 Django 测试数据库的 Celery Worker

    背景 我正在开发一个项目 该项目使用 Celery 来安排将在未来某个时间运行的任务 这些任务推动最终状态机的状态向前发展 这是一个例子 未来的提醒计划在 2 天内发送给用户 当该计划任务运行时 会发送一封电子邮件 并且 FSM 会前进到下
  • 避免 Django 中表单输入元素 ID 重复

    当一页上的两个表单具有相同名称的字段时 Django 将生成无效的 HTML
  • Logback 配置在单行上有异常吗?

    我的日志被提取 传输并合并到 elasticsearch 中 多行事件很难跟踪和诊断 有没有办法使用收集器和正则表达式将异常行分组到单个记录中登录配置 https logback qos ch manual layouts html xTh
  • Django 中同一个模型的多个多对多关系

    给定以下具有两个多对多关系的模型 class Child models Model name models CharField max length 80 class Foo models Model bar models ManyToMa
  • docker环境下日志不保存到文件

    在我的生产环境中production rb 我已配置我的日志将保存到文件中 config logger Logger new log production log 当我在本地运行时 使用命令行启动服务器rails s e productio
  • 使用 PyCharm 分析 Django

    即使在开发环境中 我的应用程序也相当慢 所以我想找出是什么导致它变慢 以便我可以尝试修复它 我了解调试工具栏 根据它的报告 数据库查询和下载的源都不是问题 所以它一定是业务逻辑 但是 我无法使用 Django 服务器运行 PyCharm 分
  • 媒体文件上的 404 - Django

    昨晚我将项目上传到 pythonanywhere com 我想在那里测试我的项目生产设置 在我允许的模型之一中用户上传JPG 团队徽标 上传过程运行良好 文件位于我的 MEDIA ROOT 中 问题是 当我尝试在模板中访问它 以将其显示在页
  • AWS Beanstalk 上的 Python。如何对自定义日志进行快照?

    我正在开发适用于 aws beanstalk 环境的 python 应用程序 为了进行错误处理和调试 建议我将日志写入目录 var logs 上的自定义 lof 文件 我应该怎么做才能从 Elastic beanstalk 管理控制台获得能
  • Django Postgres 全文 TrigramSimilarity 多个字段

    我想弄清楚如何使用TrigramSimilarity with unaccent对于多个字段 到目前为止我有 def filter by location self queryset location log info Filtering
  • Visual Studio Code 中的 Pylint“未解析的导入”错误

    我正在使用以下设置 macOS v10 14 https en wikipedia org wiki MacOS Mojave 莫哈韦 Python 3 7 1 Visual Studio 代码 1 30 皮林特 2 2 2 姜戈2 1 4
  • Django 模板变量从 {% for %} 循环到 Javascript

    这是一个迭代记录的 Django 模板 每条记录都包含一个由 JS 函数填充的 div 为了让 JS 知道要做什么 它需要从每次 for 循环迭代中获取一个变量并使用它 我不知道具体如何实现这一目标或是否可能 我不知道 也许记录在单独的 J
  • Django 中使用外键的抽象基类继承

    我正在尝试在 Django 支持的网站上进行模型继承 以遵守 DRY 我的目标是使用一个名为 BasicCompany 的抽象基类来为三个子类提供通用信息 Butcher Baker CandlestickMaker 它们位于各自的应用程序

随机推荐

  • C++20 前后 std::atomic 的初始化

    考虑以下两行代码 std atomic flag a Since C 20 std atomic flag a ATOMIC FLAG INIT Until C 20 在C 20中 第一行初始化a到清晰的状态 但如果我在 C 17 中使用它
  • 已弃用 - Laravel:如何使用 Carbon 在视图中本地化日期[重复]

    这个问题在这里已经有答案了 我正在尝试本地化Carbon不同语言的视图中的日期到目前为止还没有成功 我从模型中检索日期并将其发送到视图 Route get tables setup function now Date now Europe
  • Phonegap 3.0 自定义插件

    几个月前 我用phonegap 2 7为一个应用程序编写了一个插件 它运行得很好 该插件基本上打开用户电话簿并将用户选择的联系人的详细信息返回到我的应用程序 我最近升级到 Phonegap 3 0 我正在尝试将我的插件转换为 3 0 但是我
  • 如何将 NSData 值转换为 UIImage [重复]

    这个问题在这里已经有答案了 可能的重复 NSData 到 UIImage https stackoverflow com questions 2240765 nsdata to uiimage 如何将 NSData 值转换为 UIImage
  • Python 中二维矩阵的单元格分配,无需 numpy

    下面是我的脚本 它基本上创建了一个 12x8 的零矩阵 其中填充了 0 然后我想将其一一填充 假设第 2 列第 0 行需要为 5 我该怎么做 下面的示例显示了我是如何做到的以及错误的 根据我的需要 输出 list MatrixRow lis
  • 为什么要禁用垃圾收集器?

    Pythons gc disable http docs python org 3 3 library gc html gc disable禁用自动垃圾收集 据我了解 这会产生相当多的副作用 为什么有人想要禁用自动垃圾收集 如果没有它 如何
  • Swift 4 中的访问控制

    升级到Swift4 from Swift3 我遇到了一些相关问题access control 这是示例代码 其中有Swift3 过去工作正常 open class MyClass private let value Int static v
  • Xcode 机器人在成功/失败时不发送电子邮件

    我设置了 Xcode Bots 它运行成功 但是 尽管设置了电子邮件地址以在构建成功或失败时收到通知 但我没有收到任何电子邮件 是否有任何额外的 SMTP 设置需要隐藏在某处 您可能需要配置 Mac OSX 服务器来发送电子邮件 本地服务器
  • 如何在 Eclipse 中根据变量设置 Ant 属性?

    我有一个常见问题 可能有无数种方法可以解决它 我正在为这种典型场景寻找一种优雅 简单的解决方案 我在 Eclipse 中有一个带有 Ant 构建文件 build xml 的项目 该构建文件使用属性文件 build properties 在该
  • NSRegularExpression 用于剥离 HTML 标签

    我正在开发一个电子书阅读器应用程序 我有整本电子书的 ePUB 文件 其中电子书的每个主题都是一个 html 文件 我想在应用程序中实现搜索功能 我正在使用 NSRegularExpression 类进行搜索 请考虑以下 html 代码
  • 为什么 C#7 语法中的 TryParse(清空参数)在编译时会发出警告?

    在 C 7 中 你可以这样做 if int TryParse 123 out int result Console WriteLine Parsed result 或者 如果您不使用结果而只想检查解析是否成功 discard https l
  • 用于复制的 EBS 卷的快照

    我在 EBS 卷上设置了一个带有 MySQL 的 EC2 实例 并设置了另一个充当复制从属实例 复制设置很好 我的问题是关于拍摄这些卷的快照 我注意到快照过程需要锁定表 这可能会给用户带来不便 因此 我的想法是保留主实例并拍摄作为从实例的快
  • 从队列中获取最后 n 个项目

    我看到的一切都是关于列表的 但这是关于events queue queue 这是一个包含我想要提取的对象的队列 但是我如何从该队列中获取最后 N 个元素 根据定义 你不能 你可以做的是使用循环或理解get the first 你不能get从
  • 为什么body.scrollHeight自动增加而不减少

    我的 iframe body 有一个scrollHeight我认为是只读的属性 我不明白它是如何设置的 当我修改iframe body innerHTML和一些largerHTML 我注意到iframe body scrollHeight
  • 如何用随机字典值填充 pandas 数据框列

    我是 Pandas 新手 我想使用随机文本数据 我正在尝试向 DataFrame df 添加 2 个新列 每个列都由从字典中随机选择的键 newcol1 值 newcol2 填充 countries Africa Ghana Europe
  • TinyMCE中通过execCommand(insertContent)插入元素的参考

    我需要一个我通过 TinyMCE 编辑器插入的元素的参考 ed execCommand mceInsertContent false span class marker my node content span 或者 是否有任何解决方法可以
  • CollapsingToolbarLayout 以编程方式扩展动画持续时间

    我在 Android 的应用程序中使用 CollapsingToolbarLayout 我的应用程序的最低要求 API 是 9 我需要当用户单击折叠的工具栏时展开折叠的工具栏 就像在最新的 Gmail 日历应用程序中一样 所以我设置了一个
  • 多用户数据源 - Spring + Hibernate

    我正在编写一个支持多个用户的网络应用程序 每个用户都有自己的数据库 使用H2 所有数据库模式都是相同的 我希望在这个应用程序中使用 Spring Hibernate 所以我被困在如何将用户的数据库与该用户关联起来 也许在HTTPSessio
  • 可对动态内容进行排序

    所以我使用 jQuery UI 可排序插件对小图库中的照片进行排序 function area sortable items sort wrapper cursor move handle photo handler opacity 0 5
  • django:如何为 SuspiciousOperation 异常创建自定义日志过滤器?

    迁移到 1 11 从 1 8 后 我收到了一些SuspiciousOperation记录错误 它似乎来自 JS 请求 如果用户移动鼠标 它会保持会话活动 但这并不重要 我怎样才能过滤这个异常 我尝试过的 我刚刚在某处创建了一个过滤器 imp