Python 巨蟒哨兵:添加";“吉特责备”;每个源代码行的like前缀

Python 巨蟒哨兵:添加";“吉特责备”;每个源代码行的like前缀,python,sentry,raven,Python,Sentry,Raven,如果sentry中的异常包含像git Dull这样的信息,那就太好了 如果我在sentry的一个异常中看到的每一行源代码都有一个前缀,比如git gull(日期、提交哈希、作者),那么您可以更快地找到相关的提交 一个英国哨兵不能在开箱即用。我在哪里,怎样才能和哨兵取得联系 请留下你为什么否决这个问题的评论。我很好奇,愿意学习 只是为了记录在案。哨兵队正在做类似的事情。不完全是这样,但它确实解决了相同的用例:我建议您尝试Guthub插件,它不显示git Bull,但与Sentry版本集成,并显示一

如果sentry中的异常包含像git Dull这样的信息,那就太好了

如果我在sentry的一个异常中看到的每一行源代码都有一个前缀,比如
git gull
(日期、提交哈希、作者),那么您可以更快地找到相关的提交

一个英国哨兵不能在开箱即用。我在哪里,怎样才能和哨兵取得联系

请留下你为什么否决这个问题的评论。我很好奇,愿意学习


只是为了记录在案。哨兵队正在做类似的事情。不完全是这样,但它确实解决了相同的用例:

我建议您尝试Guthub插件,它不显示git Bull,但与Sentry版本集成,并显示一个适当的提交和作者,以及Github的链接


回溯由多行代码组成。您可以使用库从
git
中提取这些行的信息:

此外,您还可以使用自己的记录器,将此
额外的
参数添加到所有
.exception()
.error()
.critical()
调用中


总的来说,你想要达到什么样的行为是相当模糊的,一切都是可能的。但是调用
git bull
代价高昂,可能会严重影响应用程序的性能。

这看起来像是对Sentry的功能请求,但不是问题?@georgexsh,因为我不知道Sentry拥有的所有功能,我无法区分功能请求或问题。我想你可以在标题或正文中至少包含一个问号(即使你觉得问题似乎很明显)。@DJV是的,你是对的。我更新了问题。很高兴知道有这样的插件存在。非常感谢。在我当前的上下文中,源代码不在github上,而是在私有(非github)repo中。是的,在应用程序主机上这样做会影响性能。在sentry内部(数据从应用程序主机传输到sentry后)是否有办法做到这一点?我相信您可以手动更改sentry数据库或创建自定义插件,如以下所示:。例如,fork和alter-Github插件@Trilliput告诉我们。还有比特桶回购。
import sys
import traceback


from git import Repo


def commit_info(file_path, line_number):
    for commit, lines in Repo().blame('HEAD', file_path):
        line_number -= len(lines)
        if line_number <= 0:
            return commit.hexsha, commit.committed_datetime, commit.author.name


try:
    raise Exception('error')
except Exception:
    for filename, line_number, _, _ in traceback.extract_tb(sys.exc_info()[2]):
        print filename, line_number, commit_info(filename, line_number)
try:
    raise Exception
except Exception:
    commit = choose_one_commit()
    logger.exception('Error', extra={'author': author.name, 'sha': commit.hexsha})