本文章将介绍基于Sentry官方提供的在线服务集成sentry,本地搭建sentry将在下篇文章中介绍。

Sentry是个什么东西,自行百度了解。

1、注册,登录

网址:https://sentry.io/
注册一个账号

2、创建一个project 

3、获取project的DSN

4、maven配置依赖

<dependency><groupId>io.sentry</groupId><artifactId>sentry-log4j</artifactId><version>1.7.10</version>
</dependency>

普通java项目需要引入的jar包包括:sentry-1.7.16.jar、sentry-log4j-1.7.17-SNAPSHOT.jar、jackson-annotations-2.1.0.jar、jackson-core-2.1.2.jar、jackson-databind-2.1.0.jar等,根据需要引入。

5、log4j集成sentry时需要在log4j中增加下列配置:

# Enable the Console and Sentry appenders
log4j.rootLogger=INFO, Console, Sentry# Configure the Console appender
log4j.appender.Console=org.apache.log4j.ConsoleAppender
log4j.appender.Console.layout=org.apache.log4j.PatternLayout
log4j.appender.Console.layout.ConversionPattern=%d{HH:mm:ss.SSS} [%t] %-5p: %m%n# Configure the Sentry appender, overriding the logging threshold to the WARN level
log4j.appender.Sentry=io.sentry.log4j.SentryAppender
log4j.appender.Sentry.threshold=WARN

如果是log4j.xml,则

<?xml version="1.0" encoding="UTF-8"?>
<configuration  package="org.apache.logging.log4j.core,io.sentry.log4j2"><properties><property name="PATTERN">[%-5p]%d{yyyy-MM-dd HH:mm:ss,SSS} %l%n%m%n</property></properties><appenders><Console name="Console" target="SYSTEM_OUT"><PatternLayout charset="UTF-8" pattern="${PATTERN}" /></Console><RollingFile name="crawler_logger_appender"fileName="logs/crawler.log"filePattern="logs/crawler-%d{yyyyMMdd-HH}.log"><PatternLayout charset="UTF-8"><Pattern>"${PATTERN}"</Pattern></PatternLayout><Policies><TimeBasedTriggeringPolicy/><SizeBasedTriggeringPolicy size="10 MB" /></Policies></RollingFile><Sentry name="Sentry" /></appenders><loggers><logger name="com.xxx" level="ERROR"><AppenderRef ref="Console" /></logger><root level="ERROR"><AppenderRef ref="Console" /><AppenderRef ref="crawler_logger_appender"></AppenderRef></root><AsyncLogger name="sentrylogger" additivity="false"level="ERROR" includeLocation="true"><AppenderRef ref="Sentry" /></AsyncLogger><AsyncLogger name="crawlerlogger" additivity="false"level="ERROR" includeLocation="true"><AppenderRef ref="crawler_logger_appender" /></AsyncLogger></loggers>
</configuration>

如果指定sentrylogger形式的日志才需要发送到sentry,其他日志不需要发送时,则按照下面的格式配置:

log4j.logger.sentrylogger=INFO,Sentry## Enable the Console and Sentry appenders
#log4j.rootLogger=INFO, Console, Sentry
#
## Configure the Console appender
log4j.appender.Console=org.apache.log4j.ConsoleAppender
log4j.appender.Console.layout=org.apache.log4j.PatternLayout
log4j.appender.Console.layout.ConversionPattern=%d{HH:mm:ss.SSS} [%t] %-5p: %m%n
##
## Configure the Sentry appender, overriding the logging threshold to the INFO level log4j.appender.Sentry=io.sentry.log4j.SentryAppender log4j.appender.Sentry.threshold=INFO

6、设置DSN

在文件系统或类路径上的属性文件中(默认为sentry.properties):

dsn=https://public:private@host:port/1

通过Java系统属性(在Android上不可用):

-Dsentry.dsn=https://public:private@host:port/1 -jar app.jar

通过系统环境变量(在Android上不可用):

SENTRY_DSN=https://public:private@host:port/1 java -jar app.jar

代码中:

import io.sentry.Sentry;Sentry.init("https://public:private@host:port/1");

7、demo代码:

package io.sentry.example.basic;import io.sentry.Sentry;
import io.sentry.SentryClient;
import io.sentry.SentryClientFactory;
import io.sentry.context.Context;
import io.sentry.event.BreadcrumbBuilder;
import io.sentry.event.UserBuilder;public class MyClass {private static SentryClient sentry;public static void main(String... args) {/*It is recommended that you use the DSN detection system, whichwill check the environment variable "SENTRY_DSN", the JavaSystem Property "sentry.dsn", or the "sentry.properties" filein your classpath. This makes it easier to provide and adjustyour DSN without needing to change your code. See the configurationpage for more information.*/Sentry.init("https://8219291bc5224fa8ab7188ffbf4aa025:6ce60ab509d046cfbbada4862cbd2154@sentry.io/1361356");// You can also manually provide the DSN to the ``init`` method.// String dsn = "https://<SENTRY_PUBLIC_KEY>:<SENTRY_PRIVATE_KEY>@sentry.io/<PROJECT_ID>";// Sentry.init(dsn);/*It is possible to go around the static ``Sentry`` API, which meansyou are responsible for making the SentryClient instance availableto your code.*/sentry = SentryClientFactory.sentryClient();MyClass myClass = new MyClass();myClass.logWithStaticAPI();}/*** An example method that throws an exception.*/void unsafeMethod() {throw new UnsupportedOperationException("You shouldn't call this!");}/*** Examples using the (recommended) static API.*/void logWithStaticAPI() {// Note that all fields set on the context are optional. Context data is copied onto// all future events in the current context (until the context is cleared).// Record a breadcrumb in the current context. By default the last 100 breadcrumbs are kept.
        Sentry.getContext().recordBreadcrumb(new BreadcrumbBuilder().setMessage("User made an action").build());// Set the user in the current context.
        Sentry.getContext().setUser(new UserBuilder().setEmail("1416459094@qq.com").build());// Add extra data to future events in this context.Sentry.getContext().addExtra("extra", "thing");// Add an additional tag to future events in this context.Sentry.getContext().addTag("tagName", "tagValue");/*This sends a simple event to Sentry using the statically stored instancethat was created in the ``main`` method.*/Sentry.capture("This is a test by weichangjin");try {unsafeMethod();} catch (Exception e) {// This sends an exception event to Sentry using the statically stored instance// that was created in the ``main`` method.
            Sentry.capture(e);}}}

自测成功!

转载于:https://www.cnblogs.com/promonkeys/p/10209642.html

项目集成sentry相关推荐

  1. .net core 集成 sentry 进行异常报警

    .net core 集成 sentry 进行异常报警 Intro Sentry 是一个实时事件日志记录和汇集的平台.其专注于错误监控以及提取一切事后处理所需信息而不依赖于麻烦的用户反馈.它分为客户端和 ...

  2. MiniDao普通项目集成方案

    2019独角兽企业重金招聘Python工程师标准>>> MiniDao普通项目集成方案 1.导入必要的jar包: 2.spring配置文件增加如下配置: <!-- Hibern ...

  3. 项目集成自动分词系统ansj,实现自定义词库

    一,分词系统地址:https://github.com/NLPchina/ansj_seg 二,为什么选择ansj? 1.项目需求: 我们平台要做手机售后的舆情分析,即对购买手机的用户的评论进行分析. ...

  4. 论:CMMI项目集成管理(IPM)

    项目集成管理方法 一.建立项目集成管理的过程和方针 1. 建立方针:我们组织的过程方针描述中,有对项目集成管理方针的描述. 2. 建立过程:依据组织的过程流程.裁剪指南:结合项目特性,裁剪得出项目过程 ...

  5. 配置安全的Impala集群集成Sentry

    本文主要记录配置安全的Impala集群集成Sentry的过程.Impala集群上配置了Kerberos认证,并且需要提前配置好Hive与Kerberos和Sentry的集成: 使用yum安装CDH H ...

  6. Spring/Spring Boot微服务项目 集成Druid 实现监控功能

    为什么80%的码农都做不了架构师?>>>    步骤如下: 1.首先新建2个model(LogInfo,MonitorInfo) public class LogInfo imple ...

  7. shiro教程(4)-shiro与项目集成开发

    1 shiro与项目集成开发 这里我们主要以用户登录的例子来演示,先给出一个时序图: 点击打开链接(点击查看) 1.1 shiro与spring web项目整合 shiro与springweb项目整合 ...

  8. springboot项目集成docker

    文章目录 一.docker常用命令 0.拉取镜像到本地仓库 1.查看所有镜像 2.创建一个新的容器并运行,返回的是容器的ID -- CONTAINER ID: 3.查看运行中的docker实例 4.查 ...

  9. 基于 abp vNext 和 .NET Core 开发博客项目 - 集成Hangfire实现定时任务处理

    基于 abp vNext 和 .NET Core 开发博客项目 - 集成Hangfire实现定时任务处理 转载于:https://github.com/Meowv/Blog 接下来,将完成一个任务调度 ...

  10. spring 项目集成配置_Spring重试–与项目集成的方式

    spring 项目集成配置 如果您需要在代码中实现健壮的重试逻辑,一种行之有效的方法是使用spring重试库. 我的目的不是要展示如何使用spring retry项目本身,而是要演示将其集成到代码库中 ...

最新文章

  1. windows8下安装Visual Studio2008
  2. linux qemu 使用方法
  3. TortoiseSVN 的 bin 目录下面没有 svn.exe(已测试)
  4. Spring Boot 最流行的 16 条最佳实践!
  5. leetcode45 --- jump
  6. java jsonfield_fastjson使用-- @JSONField使用(转)
  7. TCP协议为什么会采用三次握手,若采用二次握手可以吗?
  8. python利用tensorflow识别图形_表情识别与性别识别 实时识别模型附源代码 基于python的tensorflow与keras...
  9. Proteus8.6 安装教程
  10. 十几款Discuz精品采集插件免费下载,总有一款适合您!
  11. XP框架开启debug模式_win10 2004系统如何开启夜间护眼模式的问题
  12. 自定义控件ViewGroup上下滑动
  13. 香农公式说明了什么_香农定理到底有什么含义?能通俗地解释一下么?
  14. iOS Workspace内多project开发
  15. 常用git 命令备忘
  16. 如何通过供应链管理来居家做菜?
  17. 注销使用苹果登录的账号
  18. 特洛伊的女人 | 经济学人早报精选20210830
  19. 支持HEVC/H265 RTMP接收的FFMPEG/FFPLAY WINDOWS版本
  20. 【学会Matlab走遍天下】如何画正弦余弦曲线和(学习笔记)

热门文章

  1. linux查看硬盘分区类型,linux 下查看硬盘分区类型
  2. linux文件权限中 chmod、u+x、u、r、w、x分别代表什么
  3. acWing 1296 聪明的燕姿
  4. 如果有人问你 Dubbo 中注册中心工作原理,就把这篇文章给他
  5. linux单用户可以删除文件么,Linux单用户模式详解 及应用场景
  6. 在mysql中怎么存储表情符号,如何在MySQL数据库中存储表情符号字符
  7. 小D课堂 - 新版本微服务springcloud+Docker教程_3-01 什么是微服务的注册中心
  8. Giroro制造武器
  9. 在GRIDVIEW中合并单元格
  10. Spring转换编码utf-8方式