1、sentry

Sentry一个开源错误跟踪工具,能够让开发者实时监控和修复崩溃程序,持续迭代,提高效率。程序代码中集成Sentry之后,能够将异常信息发送到Sentry服务,并且可以通过配置Sentry插件,能够实现通过邮件、钉钉等告警通知。
Sentry官网:https://sentry.io/welcome/

2、log4j/logback on sentry

Sentry中提供log4j的Appender,可以将log中特定等级日志发送到Sentry中
  • 代码中集成Sentry
    使用Maven:

    io.sentry
    sentry-logback
    1.7.5

    使用SBT:
    libraryDependencies += "io.sentry" % "sentry-logback" % "1.7.5"

  • logback.xml的配置





    %d{HH:mm:ss.SSS} [%thread] %-5level %logger{36} - %msg%n




    WARN






3、配置Sentry的DSN(Data Source Name)

有以下集中实现的方式。

  • 配置在classpath下的sentry.properties
    dsn=https://public:private@host:port/1
  • 配置在Java系统属性中(Java System Properties)
    java -Dsentry.dsn=https://public:private@host:port/1 -jar app.jar
  • 配置在系统环境变量中
    SENTRY_DSN=https://public:private@host:port/1 java -jar app.jar
  • 在代码中实现
    import io.sentry.Sentry;
    Sentry.init("https://public:private@host:port/1");

我采用的是第二个方式,配置启动程序的JVM参数
【总结】log4j on sentry实践_第1张图片

4、代码实现

具体工程代码可以参考 https://github.com/chocolateBlack/loghub-logback-sentry