Python Sentry.io动态忽略记录器
每当我决定忽略发送给sentry的某个记录器时,我希望动态地将记录器添加到一个文件中,我已经阅读了文档和这个答案,我相信当我将文本字符串放入ignore_logger函数时,它就可以工作了 当我尝试下面的代码时,它不会忽略记录器,有没有更好的方法来实现这一点Python Sentry.io动态忽略记录器,python,django,sentry,Python,Django,Sentry,每当我决定忽略发送给sentry的某个记录器时,我希望动态地将记录器添加到一个文件中,我已经阅读了文档和这个答案,我相信当我将文本字符串放入ignore_logger函数时,它就可以工作了 当我尝试下面的代码时,它不会忽略记录器,有没有更好的方法来实现这一点 with suppress(FileNotFoundError): with open(os.path.join(SITE_ROOT, '..', 'sentry_ignore_logger.txt')) as f:
with suppress(FileNotFoundError):
with open(os.path.join(SITE_ROOT, '..', 'sentry_ignore_logger.txt')) as f:
for log_line in f:
ignore_logger(log_line)
我在循环中有一个print语句来检查它是否正在读取文件,并按需要打印,因此问题不是一个错误的文件。
该文件的内容包括:
django.security.DisallowedHost
我使用的是Djano,在sentry_sdk.init之后,我把它放在了我的settings.py中(我之前有过它,但是它也不起作用)
谢谢好的,我已经改变了我在这方面的策略,我没有阅读一个对我不起作用的平面文件,而是将文件更改为json结构,并将字符串作为json对象加载,忽略了加载到内存中的字典中的内容
with suppress(FileNotFoundError):
with open(os.path.join(SITE_ROOT, '..', 'sentry_ignore_logger.json')) as f:
ignore_logger_dict = json.loads(f.read())
for logger_name in ignore_logger_dict.get('loggers'):
ignore_logger(logger_name)
文件内容包括:
{
'loggers':
[
'django.security.DisallowedHost',
'proj.module.submodule'
]
}
这对我来说似乎很管用,感觉更完整一些
现在,我只需要向该阵列添加一个新条目,然后重新启动apache或应用程序服务器,新的记录器将被忽略
希望这对我有所帮助。好的,我已经改变了我在这方面的策略,我没有阅读一个对我不起作用的平面文件,而是将文件更改为json结构,并将字符串作为json对象加载,忽略了加载到内存中的字典中的内容
with suppress(FileNotFoundError):
with open(os.path.join(SITE_ROOT, '..', 'sentry_ignore_logger.json')) as f:
ignore_logger_dict = json.loads(f.read())
for logger_name in ignore_logger_dict.get('loggers'):
ignore_logger(logger_name)
文件内容包括:
{
'loggers':
[
'django.security.DisallowedHost',
'proj.module.submodule'
]
}
这对我来说似乎很管用,感觉更完整一些
现在,我只需要向该阵列添加一个新条目,然后重新启动apache或应用程序服务器,新的记录器将被忽略
希望这有助于确保没有前导或尾随空格!也许只需执行
log\u line.strip()
确保没有前导或尾随空格!也许只要做log\u line.strip()