sentry客户端配置

项目新需求,需要对接sentry平台,于是在完成客户端相关配置之后,将一些知识点总结一下。

配置流程

  1. 根据开发环境,引入相应的SDK包,这里我用的是java,可以直接引入与java开发相关的包,这里我只实践了三种方式(maven引入):
a. java原生的方式
  <dependency>
      <groupId>io.sentry</groupId>
      <artifactId>sentry</artifactId>
      <version>1.7.27</version>
  </dependency>
b.同logback结合
  <dependency>
      <groupId>io.sentry</groupId>
      <artifactId>sentry-logback</artifactId>
      <version>1.7.27</version>
  </dependency>
c.同spring结合
  <dependency>
      <groupId>io.sentry</groupId>
      <artifactId>sentry-spring</artifactId>
      <version>1.7.27</version>
  </dependency>

其实这后两种方式的实质还是使用了java原生方式,其核心在于Sentry.capture这种静态方法的使用。

  1. 配置常用的sentry属性
a. dsn,Data Source Name,相当于一个发送请求的链接,注意,这个是必填项
b. environment,上传到sentry服务器时对应的环境,这个是客户端自定义的
c. stacktrace.app.packages,需要追踪异常的包的前缀
d. release,客户端自定义的应用版本信息

一般来说,sentry在使用默认构造器时,加载属性的方式顺序如下:

a. JNDI, if available
b. Java System Properties
c. System Environment Variables
d. DSN options, if a non-null DSN is provided
d. Sentry properties file found in resources

我这里用的是sentry.properties。

  1. 在应用中配置使用sentry的入口
    这里按照三种方式来进行对比总结。
  • java原生方式
可以在要记录的异常处,调用Sentry.capture方法
  • 同logback结合
在logback.xml配置文件中,配置一个类型为io.sentry.logback.SentryAppender
的<appender>,配置好过滤条件即可,在有需要的logger中配置该appender。
  • 同spring结合
这里仅介绍使用java配置的形式:
@Bean
public HandlerExceptionResolver sentryExceptionResolver() {
    return new io.sentry.spring.SentryExceptionResolver();
}
该形式只适用于使用SpringMVC的web项目,这个sentryExceptionResolver相当
于创建了一个优先级最高的全局异常解析器,将捕捉到的异常信息发送到sentry服务端。
SentryExceptionResolver本质还是调用了Sentry.capture方法,因而我们可以
根据自己的需求自定义SentryExceptionResolver。

参考资料

最后编辑于
©著作权归作者所有,转载或内容合作请联系作者
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。