相关地址:
官网:https://getsentry.com/welcome/
github:https://github.com/getsentry/sentry
安装手册:https://docs.getsentry.com/hosted/quickstart/
别人家的:http://blog.gaoyuan.xyz/2013/12/18/deploy-sentry-in-product/
Sentry介绍:
无论测试如何完善的程序,bug总是免不了会存在的,有些bug不是每次都会出现,测试时运行好好的代码可能在某个用户使用时就歇菜了,可是当程序在用户面前崩溃时,你是看不到错误的,当然你会说:”Hey, 我有记日志呢”。 但是说实话,程序每天每时都在产生大量的日志,而且分布在各个服务器上,并且如果你有多个服务在维护的话,日志的数量之多你是看不过来的吧。等到某天某个用户实在受不了了,打电话来咆哮的时候,你再去找日志你又会发现日志其实没什么用:缺少上下文,不知道用户什么操作导致的异常,异常太多(从不看日志的缘故)不知如何下手 等等。
Sentry就是来帮我们解决这个问题的,它是一款精致的Django应用,目的在于帮助开发人员从散落在多个不同服务器上毫无头绪的日志文件里发掘活跃的异常,继而找到潜在的臭虫。
Sentry是一个日志平台, 它分为客户端和服务端,客户端(目前客户端有Python, PHP,C#, Ruby等多种语言)就嵌入在你的应用程序中间,程序出现异常就向服务端发送消息,服务端将消息记录到数据库中并提供一个web节目方便查看。Sentry由python编写,源码开放,性能卓越,易于扩展,目前著名的用户有Disqus, Path, mozilla, Pinterest等。
不管你用什么编程语言,都会面临如何处理错误日志的问题。很多程序员对错误日志放任自流,直到出现故障了才追悔莫及,如果问我怎么办,我会推荐 Sentry!
Sentry 是一个错误记录和聚合的平台,只要看看它漂亮的界面就会喜欢上它:
Logback集成:
下面这段logback集成配置xml:
总结:
虽然从上面测试看起来,程序效率下降了大概1/4左右,但测试毕竟和实际应用有一些差距,实际运行的应用有更复杂的逻辑,更多的运算和更多的io操作,所以实际上sentry的影响会很小,而带来的好处则很多,并且,Sentry是一个平台级的服务,一旦构建好,所有应用都可以使用受益。
当然,Sentry和log不是相互重叠的东西,他们各有用处,不能把Sentry当做log来使用,大量的网络操作对应用程序来说还是会有影响的。而且有了Sentry后log还是需要的,Sentry在服务器网络异常时会失效,并且业务逻辑的跟踪等等也离不开log。
祝大家生活愉快,(*^__^*)