Sentry集成Spring Boot , 并举行错误日志 网络
1. 在sentry上创建一个项目
2. 选择项目的平台
在这里我们可以看到sentry还是支持许多品台的 , vue, java , Spring Boot , C , C++ ,Go 等等 , 都支持 ,
根据本身的需求选择创建指定平台的项目即可 (我们这里选择 Spring Boot)
选择平台后 , 要指定项目的名称,以及可以选择团队来检察项目
创建完成后 , 就会进入到教程页面 , 该页面中包罗了Spring Boot集成Sentry的教程 , 按照操纵 , 即可 (看不懂不要紧 ,下面有教程)
3. SpringBoot 集成Sentry
- <!-- 日志
--> - <dependency>
- <groupId>ch.qos.logback</groupId>
- <artifactId>logback-classic</artifactId>
- <version>1.2.3</version>
- <exclusions>
- <exclusion>
- <groupId>org.slf4j</groupId>
- <artifactId>slf4j-log4j12</artifactId>
- </exclusion>
- </exclusions>
- </dependency>
- <dependency>
- <groupId>ch.qos.logback</groupId>
- <artifactId>logback-core</artifactId>
- <version>1.2.3</version>
- </dependency>
- <!-- Sentry相关依赖 -->
- <dependency>
- <groupId>io.sentry</groupId>
- <artifactId>sentry-spring-boot-starter</artifactId>
- <version>5.7.3</version>
- </dependency>
- <dependency>
- <groupId>io.sentry</groupId>
- <artifactId>sentry-logback</artifactId>
- <version>5.7.3</version>
- </dependency>
复制代码 点击 : 项目 --> spring-boot-test --> 点击又上角的设置按钮(进入到设置页面)
把dns密钥复制出来,一会要用到
- 在项目中的 application.yml 文件中 , 到场设置 (设置中的dns,换成刚才的dns)
- sentry:
- dsn: http://6e0e39a3534341e588c8ad3026ba0896@ip/6
- # Set traces-sample-rate to 1.0 to capture 100% of transactions for performance monitoring.
- # We recommend adjusting this value in production.
- traces-sample-rate: 1.0
复制代码
- 在项目的resource目次下,创建 logback.xml文件,并在文件中到场如下设置信息
- <?xml version="1.0" encoding="UTF-8"?>
- <configuration>
- <!-- %m输出的信息,%p日志
级别,%t线程名,%d日期,%c类的全名,%i索引【从数字0开始递增】,,, --> - <!-- appender是configuration的子节点,是负责写日志的组件。 -->
- <!-- ConsoleAppender:把日志输出到控制台(可指定文件存放的路径) -->
- <property name="LOG_HOME" value="/home/data/jar_logs/log4j/test_info"/>
- <appender name="STDOUT" class="ch.qos.logback.core.ConsoleAppender">
- <encoder>
- <pattern>%d{yyyy-MM-dd HH:mm:ss.SSS} [%thread] %-5level %class{36}.%method\(%class{0}.java:%line\) -
- %msg%n
- </pattern>
- <!-- 控制台也要使用UTF-8,不要使用GBK,否则会中文乱码 -->
- <charset>UTF-8</charset>
- </encoder>
- </appender>
- <!-- RollingFileAppender:滚动记录文件,先将日志记录到指定文件,当符合某个条件时,将日志记录到其他文件 -->
- <!-- 以下的大概意思是:1.先按日期存日志,日期变了,将前一天的日志文件名重命名为XXX%日期%索引,新的日志仍然是sys.log -->
- <!-- 2.如果日期没有发生变化,但是当前日志的文件大小超过1KB时,对当前日志进行分割 重命名-->
- <appender name="syslog" class="ch.qos.logback.core.rolling.RollingFileAppender">
- <!--<File>${LOG_HOME}/mall-api.log</File>-->
- <!-- rollingPolicy:当发生滚动时,决定 RollingFileAppender 的行为,涉及文件移动和重命名。 -->
- <!-- TimeBasedRollingPolicy: 最常用的滚动策略,它根据时间来制定滚动策略,既负责滚动也负责出发滚动 -->
- <rollingPolicy class="ch.qos.logback.core.rolling.TimeBasedRollingPolicy">
- <!-- 活动文件的名字会根据fileNamePattern的值,每隔一段时间改变一次 -->
- <!-- 文件名:log/sys.2017-12-05.0.log -->
- <fileNamePattern>${LOG_HOME}/test.%d.stdout.log</fileNamePattern>
- <!-- 每产生一个日志文件,该日志文件的保存期限为30天 -->
- <maxHistory>30</maxHistory>
- <!--<timeBasedFileNamingAndTriggeringPolicy class="ch.qos.logback.core.rolling.SizeAndTimeBasedFNATP">-->
- <!--<maxFileSize>10MB</maxFileSize>-->
- <!--</timeBasedFileNamingAndTriggeringPolicy>-->
- </rollingPolicy>
- <encoder>
- <!-- pattern节点,用来设置日志的输入格式 -->
- <pattern>%d{yyyy-MM-dd HH:mm:ss.SSS} [%thread] %-5level %class{36}.%method\(%class{0}.java:%line\) -
- %msg%n
- </pattern>
- <!-- 记录日志的编码 -->
- <charset>UTF-8</charset><!-- 此处设置字符集 -->
- </encoder>
- </appender>
-
- <!-- 指定sentry-->
- <appender name="Sentry" class="io.sentry.logback.SentryAppender">
- <options>
- <!-- NOTE: Replace the test DSN below with YOUR OWN DSN to see the events from this app in your Sentry project/dashboard -->
- <dsn>http://3c7665cc6634401bb5a53b1c998a2297@ip/5</dsn>
- </options>
-
- </appender>
- <!-- 控制台输出日志级别 -->
- <root level="error">
- <appender-ref ref="STDOUT"/>
- <appender-ref ref="syslog"/>
- </root>
- <!-- <logger name="org.apache.zookeeper.ClientCnxn">-->
- <!-- <level value="debug"/>-->
- <!-- <appender-ref ref="STDOUT"/>-->
- <!-- </logger>-->
- <!-- 指定项目中某个包,当有日志操作行为时的日志记录级别 -->
- <!-- com.grow.api为根包,也就是只要是发生在这个根包下面的所有日志操作行为的权限都是DEBUG -->
- <!-- 级别依次为【从高到低】:FATAL > ERROR > WARN > INFO > DEBUG > TRACE -->
- <logger name="com.grow" level="INFO" additivity="false">
- <!-- 注册普通打印日志-->
- <appender-ref ref="syslog"/>
- <!-- 注册sentry日志系统-->
- <appender-ref ref="Sentry"/>
- </logger>
- <!-- <logger level="DEBUG">-->
- <!-- <appender-ref ref="syslog"/>-->
- <!-- </logger>-->
- </configuration>
复制代码
- 增长测试的controller , 并举行调试sentry
- package com.example.springtest.controller;
- import lombok.extern.slf4j.Slf4j;
- import org.springframework.web.bind.annotation.GetMapping;
- import org.springframework.web.bind.annotation.RequestMapping;
- import org.springframework.web.bind.annotation.RestController;
- /**
- * @author lep
- * @date 2022-01-05 17:19
- */
- @RestController
- @RequestMapping("/test")
- @Slf4j
- public class GoodsController {
- // 打印不同的日志信息
- @GetMapping("/test1")
- public String test1() {
- log.info("测试sentry打印info日志");
- log.debug("测试sentry打印debug日志");
- log.warn("测试sentry打印warn日志");
- log.trace("测试sentry打印trace日志");
- log.error("测试sentry打印error日志");
- return "成功";
- }
- // 定义一个异常
- @GetMapping("/test2")
- public String test2() {
- String s = null;
- s.equals("b");
- return "成功";
- }
- }
复制代码 编写完成 , 运行项目 , 并调用 test1 ,test2 接口 , 检察sentry控制台页面状态
这里我们可以看到 , 我们把项目中的错误日志网络起来了 , 以及这个错误出现的接口所在 , 路径 ,点进详情 ,
也可以看到更具体的信息 ,: 体系,欣赏器,错误具体打印日志,等
这个日志收团体系,根本上已经满足了非常大的需求
免责声明:如果侵犯了您的权益,请联系站长,我们会及时删除侵权内容,谢谢合作!更多信息从访问主页:qidao123.com:ToB企服之家,中国第一个企服评测及商务社交产业平台。 |