Python Sentry.io动态忽略记录器

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:

每当我决定忽略发送给sentry的某个记录器时,我希望动态地将记录器添加到一个文件中,我已经阅读了文档和这个答案,我相信当我将文本字符串放入ignore_logger函数时,它就可以工作了

当我尝试下面的代码时,它不会忽略记录器,有没有更好的方法来实现这一点

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()