SpringBoot集成Sentry日志网络-3 (Spring Boot集成)

[复制链接]
发表于 2025-10-20 11:26:32 | 显示全部楼层 |阅读模式
Sentry集成Spring Boot , 并举行错误日志日志网络

1. 在sentry上创建一个项目


2. 选择项目的平台

在这里我们可以看到sentry还是支持许多品台的 , vue, java , Spring Boot , C , C++ ,Go 等等 , 都支持 ,
根据本身的需求选择创建指定平台的项目即可 (我们这里选择 Spring Boot)
选择平台后 , 要指定项目的名称,以及可以选择团队来检察项目

创建完成后 , 就会进入到教程页面 , 该页面中包罗了Spring Boot集成Sentry的教程 , 按照操纵 , 即可 (看不懂不要紧 ,下面有教程)

3. SpringBoot 集成Sentry


  • 项目中的pom.xml文件引入依赖
  1.         <!--        日志日志-->
  2.         <dependency>
  3.             <groupId>ch.qos.logback</groupId>
  4.             <artifactId>logback-classic</artifactId>
  5.             <version>1.2.3</version>
  6.             <exclusions>
  7.                 <exclusion>
  8.                     <groupId>org.slf4j</groupId>
  9.                     <artifactId>slf4j-log4j12</artifactId>
  10.                 </exclusion>
  11.             </exclusions>
  12.         </dependency>
  13.         <dependency>
  14.         <groupId>ch.qos.logback</groupId>
  15.         <artifactId>logback-core</artifactId>
  16.         <version>1.2.3</version>
  17.         </dependency>
  18.         <!--       Sentry相关依赖 -->
  19.         <dependency>
  20.             <groupId>io.sentry</groupId>
  21.             <artifactId>sentry-spring-boot-starter</artifactId>
  22.             <version>5.7.3</version>
  23.         </dependency>
  24.         <dependency>
  25.             <groupId>io.sentry</groupId>
  26.             <artifactId>sentry-logback</artifactId>
  27.             <version>5.7.3</version>
  28.         </dependency>
复制代码

  • 获取到sentry项目的dns
点击 : 项目 --> spring-boot-test --> 点击又上角的设置按钮(进入到设置页面)

把dns密钥复制出来,一会要用到

  • 在项目中的 application.yml 文件中 , 到场设置 (设置中的dns,换成刚才的dns)
  1. sentry:
  2.   dsn: http://6e0e39a3534341e588c8ad3026ba0896@ip/6
  3.   # Set traces-sample-rate to 1.0 to capture 100% of transactions for performance monitoring.
  4.   # We recommend adjusting this value in production.
  5.   traces-sample-rate: 1.0
复制代码

  • 在项目的resource目次下,创建 logback.xml文件,并在文件中到场如下设置信息
  1. <?xml version="1.0" encoding="UTF-8"?>
  2. <configuration>
  3.     <!-- %m输出的信息,%p日志日志级别,%t线程名,%d日期,%c类的全名,%i索引【从数字0开始递增】,,, -->
  4.     <!-- appender是configuration的子节点,是负责写日志的组件。 -->
  5.     <!-- ConsoleAppender:把日志输出到控制台(可指定文件存放的路径) -->
  6.     <property name="LOG_HOME" value="/home/data/jar_logs/log4j/test_info"/>
  7.     <appender name="STDOUT" class="ch.qos.logback.core.ConsoleAppender">
  8.         <encoder>
  9.             <pattern>%d{yyyy-MM-dd HH:mm:ss.SSS} [%thread] %-5level %class{36}.%method\(%class{0}.java:%line\) -
  10.                 %msg%n
  11.             </pattern>
  12.             <!-- 控制台也要使用UTF-8,不要使用GBK,否则会中文乱码 -->
  13.             <charset>UTF-8</charset>
  14.         </encoder>
  15.     </appender>
  16.     <!-- RollingFileAppender:滚动记录文件,先将日志记录到指定文件,当符合某个条件时,将日志记录到其他文件 -->
  17.     <!-- 以下的大概意思是:1.先按日期存日志,日期变了,将前一天的日志文件名重命名为XXX%日期%索引,新的日志仍然是sys.log -->
  18.     <!--             2.如果日期没有发生变化,但是当前日志的文件大小超过1KB时,对当前日志进行分割 重命名-->
  19.     <appender name="syslog" class="ch.qos.logback.core.rolling.RollingFileAppender">
  20.         <!--<File>${LOG_HOME}/mall-api.log</File>-->
  21.         <!-- rollingPolicy:当发生滚动时,决定 RollingFileAppender 的行为,涉及文件移动和重命名。 -->
  22.         <!-- TimeBasedRollingPolicy: 最常用的滚动策略,它根据时间来制定滚动策略,既负责滚动也负责出发滚动 -->
  23.         <rollingPolicy class="ch.qos.logback.core.rolling.TimeBasedRollingPolicy">
  24.             <!-- 活动文件的名字会根据fileNamePattern的值,每隔一段时间改变一次 -->
  25.             <!-- 文件名:log/sys.2017-12-05.0.log -->
  26.             <fileNamePattern>${LOG_HOME}/test.%d.stdout.log</fileNamePattern>
  27.             <!-- 每产生一个日志文件,该日志文件的保存期限为30天 -->
  28.             <maxHistory>30</maxHistory>
  29.             <!--<timeBasedFileNamingAndTriggeringPolicy class="ch.qos.logback.core.rolling.SizeAndTimeBasedFNATP">-->
  30.             <!--<maxFileSize>10MB</maxFileSize>-->
  31.             <!--</timeBasedFileNamingAndTriggeringPolicy>-->
  32.         </rollingPolicy>
  33.         <encoder>
  34.             <!-- pattern节点,用来设置日志的输入格式 -->
  35.             <pattern>%d{yyyy-MM-dd HH:mm:ss.SSS} [%thread] %-5level %class{36}.%method\(%class{0}.java:%line\) -
  36.                 %msg%n
  37.             </pattern>
  38.             <!-- 记录日志的编码 -->
  39.             <charset>UTF-8</charset><!-- 此处设置字符集 -->
  40.         </encoder>
  41.     </appender>
  42.    
  43. <!-- 指定sentry-->
  44.     <appender name="Sentry" class="io.sentry.logback.SentryAppender">
  45.         <options>
  46.             <!-- NOTE: Replace the test DSN below with YOUR OWN DSN to see the events from this app in your Sentry project/dashboard -->
  47.             <dsn>http://3c7665cc6634401bb5a53b1c998a2297@ip/5</dsn>
  48.         </options>
  49.         
  50.     </appender>
  51.     <!-- 控制台输出日志级别 -->
  52.     <root level="error">
  53.         <appender-ref ref="STDOUT"/>
  54.         <appender-ref ref="syslog"/>
  55.     </root>
  56.     <!--    <logger name="org.apache.zookeeper.ClientCnxn">-->
  57.     <!--        <level value="debug"/>-->
  58.     <!--        <appender-ref ref="STDOUT"/>-->
  59.     <!--    </logger>-->
  60.     <!-- 指定项目中某个包,当有日志操作行为时的日志记录级别 -->
  61.     <!-- com.grow.api为根包,也就是只要是发生在这个根包下面的所有日志操作行为的权限都是DEBUG -->
  62.     <!-- 级别依次为【从高到低】:FATAL > ERROR > WARN > INFO > DEBUG > TRACE  -->
  63.     <logger name="com.grow" level="INFO" additivity="false">
  64. <!--        注册普通打印日志-->
  65.         <appender-ref ref="syslog"/>
  66. <!--        注册sentry日志系统-->
  67.         <appender-ref ref="Sentry"/>
  68.     </logger>
  69.     <!--    <logger level="DEBUG">-->
  70.     <!--        <appender-ref ref="syslog"/>-->
  71.     <!--    </logger>-->
  72. </configuration>
复制代码

  • 增长测试的controller , 并举行调试sentry
  1. package com.example.springtest.controller;
  2. import lombok.extern.slf4j.Slf4j;
  3. import org.springframework.web.bind.annotation.GetMapping;
  4. import org.springframework.web.bind.annotation.RequestMapping;
  5. import org.springframework.web.bind.annotation.RestController;
  6. /**
  7. * @author lep
  8. * @date 2022-01-05 17:19
  9. */
  10. @RestController
  11. @RequestMapping("/test")
  12. @Slf4j
  13. public class GoodsController {
  14.     // 打印不同的日志信息
  15.     @GetMapping("/test1")
  16.     public String test1() {
  17.         log.info("测试sentry打印info日志");
  18.         log.debug("测试sentry打印debug日志");
  19.         log.warn("测试sentry打印warn日志");
  20.         log.trace("测试sentry打印trace日志");
  21.         log.error("测试sentry打印error日志");
  22.         return "成功";
  23.     }
  24.     // 定义一个异常
  25.     @GetMapping("/test2")
  26.     public String test2() {
  27.         String s = null;
  28.         s.equals("b");
  29.         return "成功";
  30.     }
  31. }
复制代码
编写完成 , 运行项目 , 并调用 test1 ,test2 接口 , 检察sentry控制台页面状态

  • 调试

这里我们可以看到 , 我们把项目中的错误日志网络起来了 , 以及这个错误出现的接口所在 , 路径 ,点进详情 ,
也可以看到更具体的信息 ,: 体系,欣赏器,错误具体打印日志,等

这个日志收团体系,根本上已经满足了非常大的需求

免责声明:如果侵犯了您的权益,请联系站长,我们会及时删除侵权内容,谢谢合作!更多信息从访问主页:qidao123.com:ToB企服之家,中国第一个企服评测及商务社交产业平台。

本帖子中包含更多资源

您需要 登录 才可以下载或查看,没有账号?立即注册

×
回复

使用道具 举报

登录后关闭弹窗

登录参与点评抽奖  加入IT实名职场社区
去登录
快速回复 返回顶部 返回列表