跳转到主要内容

向Sentry报告Odoo错误

项目描述

License: AGPL-3

Sentry

此模块允许轻松地将Sentry集成到Odoo中。

安装

可以通过将模块目录添加到Odoo的addons_path来安装此模块,就像安装任何其他Odoo模块一样。为了使模块能够正确封装Odoo WSGI应用程序,它还需要作为全局服务器模块加载。这可以通过Odoo配置文件中的server_wide_modules参数或使用--load命令行参数来完成。

此模块还需要系统上可用的raven Python包。它可以使用pip进行安装

pip install raven

配置

可以在您的Odoo配置文件中添加以下附加配置选项

选项

描述

默认

sentry_dsn

Sentry 数据源名称。您可以在Sentry项目配置中找到此值。通常它看起来像这样:https://<public_key>:<secret_key>@sentry.example.com/<project id> 这是使用模块的唯一必需选项。

''

sentry_enabled

是否启用Sentry日志记录。

False

sentry_logging_level

发送报告到Sentry的最小日志级别。可能的值:notsetdebuginfowarnerrorcritical。建议至少设置为warn,以避免通过Sentry事件向您发送垃圾邮件。

warn

sentry_exclude_loggers

应该从Sentry中排除的逗号分隔的日志记录器名称的字符串。

werkzeug

sentry_ignored_exceptions

应忽略的逗号分隔的异常字符串。您可以在末尾使用星号(*)来忽略模块中的所有异常,例如:openerp.exceptions.*

openerp.exceptions.AccessDenied, openerp.exceptions.AccessError, openerp.exceptions.DeferredException, openerp.exceptions.MissingError, openerp.exceptions.RedirectWarning, openerp.exceptions.ValidationError, openerp.exceptions.Warning, openerp.exceptions.except_orm

sentry_processors

在将事件发送到Sentry之前,应用在这些处理器类上的逗号分隔的字符串。这些处理器类将被应用于事件。

raven.processors.SanitizePasswordsProcessor, openerp.addons.sentry.logutils.SanitizeOdooCookiesProcessor

sentry_transport

用于将事件发送到Sentry的传输类。可能的值有:threaded:为处理消息启动异步工作进程,synchronous:同步阻塞传输;requests_threaded:使用requests库的异步传输;requests_synchronous - 使用requests库的阻塞传输。

threaded

sentry_include_context

如果启用,将提取当前HTTP请求和用户会话(如果可用)中的附加上下文数据。对于定时任务没有影响,因为定时任务中没有请求/会话。

True

sentry_odoo_dir

Odoo安装目录的绝对路径。这是可选的,将仅用于提取Odoo Git提交,并将其发送到Sentry,以便区分Odoo更新。

其他客户端参数可以通过在Odoo配置文件中将参数名称以sentry_开头来配置。目前支持的附加客户端参数包括:install_sys_hook, include_paths, exclude_paths, machine, auto_log_stacks, capture_locals, string_max_length, list_max_length, site, include_versions, environment

示例Odoo配置

下面是包含Odoo Sentry选项的示例Odoo配置文件

[options]
sentry_dsn = https://<public_key>:<secret_key>@sentry.example.com/<project id>
sentry_enabled = true
sentry_logging_level = warn
sentry_exclude_loggers = werkzeug
sentry_ignore_exceptions = openerp.exceptions.AccessDenied,openerp.exceptions.AccessError,openerp.exceptions.MissingError,openerp.exceptions.RedirectWarning,openerp.exceptions.ValidationError,openerp.exceptions.Warning,openerp.exceptions.except_orm
sentry_processors = raven.processors.SanitizePasswordsProcessor,openerp.addons.sentry.logutils.SanitizeOdooCookiesProcessor
sentry_transport = threaded
sentry_include_context = true
sentry_environment = production
sentry_auto_log_stacks = false
sentry_odoo_dir = /home/odoo/odoo/

使用方法

配置并安装后,该模块将报告配置的Sentry日志级别及以上的任何日志事件,无需采取其他操作。

Try me on Runbot

已知问题/路线图

  • 没有数据库分离 – 此模块通过拦截正在运行的Odoo进程中的所有Odoo日志记录来工作。这意味着一旦在一个数据库中安装,它将拦截并报告该Odoo服务器上使用的所有Odoo数据库的错误。

  • 前端集成 – 未来,最好添加Odoo客户端错误报告到该模块中,通过集成raven-js。此外,可以将Sentry用户反馈表单集成到Odoo客户端错误对话框窗口中,允许用户简要描述出错时他们在做什么。

错误跟踪器

错误在GitHub Issues上跟踪。在遇到问题的情况下,请检查那里是否已经报告了您的问题。如果是您首先发现的,请帮助我们通过提供详细和受欢迎的反馈来解决它。

致谢

图片

贡献者

维护者

Odoo Community Association

此模块由OCA维护。

OCA,即Odoo社区协会,是一个非营利组织,其使命是支持Odoo功能的协作开发并推广其广泛使用。

要为此模块做出贡献,请访问https://odoo-community.org

项目详情


下载文件

下载适用于您平台的文件。如果您不确定选择哪个,请了解更多关于安装包的信息。

源代码分发

此版本没有可用的源代码分发文件。请参阅生成分发存档的教程。

构建分发

odoo8_addon_sentry-8.0.1.0.0.99.dev2-py2-none-any.whl (21.0 kB 查看散列值)

上传时间 Python 2

支持者