Use exceptions for exceptional problems. Exceptions can suffer from all the readability and maintainability problems of classic spaghetti code. Reserve exceptions for exceptional things.
最近在尝试搭建错误日志收集工具Sentry,发现用docker-compose工具运行起来非常方便。 目前的项目捕捉异常比较简陋,一般代码发生异常之后,写个函数发一封邮件把异常信息附上。 一开始只是在邮件附带了异常消息,但是没有加上函数调用的参数和变量值,导致问题排查起来比较困难。 后来函数加上了个locals()返回的字典返回当前函数内部变量信息,算是方便了一点。不过最近发现了神器
Sentry
, Sentry’s real-time error tracking gives you insight into production deployments and information to reproduce and fix crashes.
在ubuntu server上搭建个一个尝试了一下(也可以直接用官方提供的服务),感觉还是非常强大的,界面也比较漂亮。
用Sentry来记录异常信息是个不错的选择,记录日志可能还有些问题,一旦log过多sentry本身可能就会有性能问题,但是一般异常发生的次数还是很少的(代码还可以的话),用来记录异常不用担心性能问题。 Sentry除了支持python之外,还支持js,go,php,java,ruby等很多编程语言和web框架。 Sentry本身使用django写成,好吧,又对django多了些好感,django确实出来过很多杀手级项目(sentry,pinterest,Instagram等)。
http://your-vps-host:9000
就可以访问sentry了.界面如下