[英]Python - Sanitize keys in Sentry logging handler (django)
我在我的Django项目中添加了Sentry日志处理程序。 我想通过添加清理密钥和两个处理器来自定义哨兵处理程序: raven.processors.SanitizePasswordsProcessor
, raven.processors.SanitizeKeysProcessor
。
有没有一种方法可以在日志记录配置中执行此操作,而无需编写新的处理程序类, raven.contrib.django.raven_compat.handlers.SentryHandler
用所需的参数包装raven.contrib.django.raven_compat.handlers.SentryHandler
类?
这是我的日志记录配置:
LOGGING = {
'version': 1,
'disable_existing_loggers': False,
'formatters': {
'x': {
#'format': '[%(asctime)s #%(process)d] %(levelname)s: %(message)s'
'format': '%(asctime)s - %(name)s - %(levelname)s - %(message)s - {%(pathname)s:%(lineno)d}'
}
},
'handlers': {
'console': {
'level': 'DEBUG',
'class': 'logging.StreamHandler',
'formatter': 'x'
},
'sentry': {
'level': 'ERROR',
'class': 'raven.contrib.django.raven_compat.handlers.SentryHandler'
}
},
'loggers': {
'django': {
'level': 'INFO',
'handlers': ['console', 'sentry'],
'propagate': True
},
}
谢谢
LOGGING
配置是添加这些过滤器的错误位置,并且不会清除Sentry事件。
如Client Arguments doc中所述,正确的位置是RAVEN_CONFIG
,也位于Django设置文件中:
RAVEN_CONFIG = {
'dsn': 'https://<key>:<secret>@sentry.io/<project>',
'sanitize_keys': [
'keyname1',
'keyname2',
],
'processors': (
'raven.processors.SanitizeKeysProcessor',
'raven.processors.SanitizePasswordsProcessor',
)
}
Django 1.4至2.0支持Raven(请参阅Django docs )。 Sentry建议为Django 2.1及更高版本使用新的sentry-sdk ,并具有Django集成说明 。 在“ 切换到Sentry-Python”一文中 ,有一条评论提到Sentry SDK不再提供这些过滤器 ,并建议在需要时编写自定义过滤器 。 send_default_pii参数默认情况下为False
,用于控制记录和发送过去由这些过滤器控制的许多敏感数据,例如IP地址,用户详细信息和cookie。
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.