Java开发人员应该知道的5种错误跟踪工具

 

错误线

随着Java生态系统的不断发展,可满足不断增长的请求和用户对高性能需求的Web应用程序成为了新型的现代开发工具。 具有快速新部署的快速节奏环境需要跟踪错误并获得应用程序行为的洞察力,而传统方法无法维持这种水平。 在这篇文章中,我们决定收集其中的5种工具,看看它们如何与Java集成,并找出它们掌握了哪些技巧。 现在该粉碎一些错误了 。

射线枪

Mindscape的Raygun是基于Web的错误管理系统,可跟踪来自您应用程序的异常。 它支持各种桌面,移动和Web编程语言,包括Java,Scala,.NET,Python,PHP和JavaScript。 除此之外,还可以通过REST API向Raygun发送错误,并且由于开发人员社区的参与,更多的提供程序(它们称为语言和框架集成)得以实现。

Raygun屏幕截图

主要特点:

  • 错误分组–每次出现的错误都在一个组中呈现,可以访问该错误的单个实例,包括其堆栈跟踪。
  • 全文搜索–可搜索错误组和所有收集的数据。
  • 查看应用程序活动–对错误组的每项操作都会显示给您的所有团队,以供查看:状态更新,评论等。
  • 受影响的用户–每个错误都会显示受影响的用户数。
  • 外部集成– Github,Bitbucket,Asana,JIRA,HipChat等。

Java角度:要将Raygun与Java结合使用,如果您使用Maven或手动添加jar,则需要向pom.xml文件中添加一些依赖项。 第二步是添加一个UncaughtExceptionHandler,它将创建RaygunClient实例并将异常发送给它。 此外,您还可以将自定义数据字段添加到异常中,并将它们一起发送给Raygun。 完整的演练可在此处获得 。

幕后 花絮 认识Raygun认证的操作员Robie Robot 。 就像实际的射线枪一样。

在以下位置查看: https //raygun.io

哨兵

Sentry从一个附带项目开始,是一个基于开源 Web的解决方案,可作为实时事件记录和聚合平台。 它监视错误并显示错误发生的时间,地点和对象,并承诺不会完全依靠用户反馈来做到这一点。 支持的语言和框架包括Ruby,Python,JS,Java,Django,iOS,.NET等。

哨兵截屏1

主要特点:

  • 实时查看新部署的影响
  • 为因错误而中断的特定用户提供支持
  • 检测并阻止欺诈行为–通知有关购买,身份验证和其他敏感区域的异常失败数量
  • 外部集成– GitHub,HipChat,Heroku等

Java角度: Sentry的Java客户端称为Raven,它支持现有的主要日志记录框架,例如java.util.logging,Log4j,Log4j2和带有Slf4j的Logback。 还提供了将事件直接发送到Sentry的独立方法。 例如,要使用Logback设置Sentry for Java,您需要手动或通过Maven添加依赖项,然后添加新的Sentry附加程序配置,您就可以做到。 此处提供说明。

幕后花絮: Sentry是2010年在Disqus上的内部项目,用于解决Chris Jennings和David Cramer在Django应用程序上记录异常的问题

在以下位置查看: https //www.getsentry.com/

塔基皮

与大多数其他工具不同,Takipi远不只是堆栈跟踪修饰符。 它的构建考虑了一个简单的目标:告诉开发人员确切的时间和原因破坏生产代码。 每当引发新异常或发生日志错误时,Takipi都会捕获该异常,并在方法和机器之间向您显示导致该异常的变量状态。 Takipi会将其覆盖在错误发生时执行的实际代码上,因此您可以分析异常,就像发生异常时一样。

Takipi2

主要特点:

  • 检测-捕获/未捕获的异常,Http和记录的错误。
  • 优先排序–错误在群集中发生的频率,是否涉及新代码或修改后的代码以及错误率是否在不断提高。
  • 分析–即使在不同的机器和应用程序之间,也可以查看实际的代码和变量状态。
  • 易于安装–无需更改代码或配置。
  • 开销不到2%。

Java角度: Takipi是为Java和Scala中的生产环境而构建的。 安装过程不到1分钟,包括将Java代理附加到JVM。

在幕后:每种异常类型和错误都有一个代表它的独特怪兽。 你可以在这里找到这些怪物。

在以下位置查看: http //www.takipi.com/

气刹

刹车片截图

Rackspace的Airbrake是另一个使异常跟踪更为醒目的工具,其使命是“不再搜索日志文件”。 它为用户提供了基于Web的界面,其中包括带有错误详细信息的仪表板和特定于应用程序的视图。 支持的语言包括Ruby,PHP,Java,.NET,Python甚至是Swift。

主要特点:

  • 详细的堆栈跟踪,按错误类型,用户和环境变量分组
  • 团队生产力–从噪音中滤除重要度错误
  • 团队协作–查看谁造成了错误并由谁修复
  • 外部集成– HipChat,GitHub,JIRA,Pivotal和其他30多个

Java角度:虽然还提供了Logback库,但Airbrake官方仅支持Log4j。 当前缺少Log4j2支持。 安装过程类似于Sentry,手动或通过Maven添加一些依赖项,添加附加程序,您就可以开始了。 同样,AirbrakeNotice和AirbrakeNotifier也提供了直接向Airbrake发送消息的方法。 更多详细信息在这里 。

幕后花絮 Airbrake被Exceptional收购,然后被Rackspace 收购 。

在以下位置查看: https : //airbrake.io/

StackHunter

Stack Hunter当前处于测试版,提供了一个自托管工具来跟踪您的Java异常。 与过去托管工具相比,情况发生了变化。 除此之外,它的目的是提供类似的功能集,以告知开发人员其异常并帮助更快地解决它们。

StackHunter屏幕截图

主要特点:

  • 一个自托管的Web界面,可查看所有异常
  • 堆栈跟踪数据和上下文的收集,包括关键指标,例如总异常,唯一异常,受影响的用户和受影响的会话
  • 发生异常时的即时电子邮件警报
  • 按根本原因对异常进行分组

Java角度: StackHunter专为Java构建,可在任何运行Java 6或更高版本的servlet容器上运行。 安装包括在本地Servlet上运行StackHunter,配置用于警报的传出邮件服务器以及配置希望记录的应用程序。 完整说明可在此处获得 。

幕后花絮 StackHunter由Dele Taylor开发,他还致力于Data Pipeline –一种用于在Java中转换和迁移数据的工具。

在以下位置查看它: http : //stackhunter.com/

奖励:ABRT

值得一提的另一种错误跟踪方法是ABRT,它是来自Fedora生态系统的自动错误检测和报告工具,它是Red Hat赞助的社区项目。 与我们在此介绍的5种工具不同,该工具不仅旨在供应用程序开发人员使用,而且还应供其用户使用。 将错误报告给具有更丰富上下文的Red Hat,否则将很难理解和调试。

ABRT

Java角度:对Java异常的支持仍处于概念验证阶段。 由JakubFilák开发的Java连接器可在此处获得 。

幕后花絮 ABRT是Red Hat开发的一个开源项目。

在以下位置查看: https //github.com/abrt/abrt

我们还错过任何其他工具吗? 您如何跟踪例外情况? 请在下面的评论部分中告诉我

翻译自: https://www.javacodegeeks.com/2014/09/5-error-tracking-tools-java-developers-should-know.html

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/news/361893.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

Emacs中的Color Theme以及字体设置

先上一张效果图: Color Theme用的是gnome2, 字体用的是Visual Studio自带的Consolas。我使用的环境是WindowsCygwinEmacs23.2。 1,安装Color Theme插件 首先,从http://download.savannah.gnu.org/releases/color-theme/下载color theme 6.6.0版本。 接着…

vue兼容ie10问题并且node——module中出现es6语法如何解决

一、首先进行安装babel-polyfill,如果你用yarn安装babel-polyfill的话需要yarn add babel-polyfill进行安装 二、在babel.config.js中加入 三、在ie浏览器中找到报错的文件,然后将文件加入其中 转载于:https://www.cnblogs.com/changhuanran/p/11193149.…

2个在Java中将Byte []数组转换为String的示例

将字节数组转换为String似乎很容易,但是很难做到正确。 每当字节转换为String或char时,许多程序员都会犯忽略字符编码的错误,反之亦然。 作为程序员,我们都知道计算机只能理解二进制数据,即0和1。我们看到和使用的所有…

Linux文件IO-例会笔记总结

上周日实验室例会主要涉及linux文件操作的内核实现。主要讨论了linux下对文件进行操作时,系统内部调用了那些函数以及它们是怎么相互配合的。 linux系统是怎样对不同介质和不同的文件系统提供统一的文件操作接口呢?答案是:VFS。系统中所有文件…

用js来实现那些数据结构12(散列表)

上一篇写了如何实现简单的Map结构,因为东西太少了不让上首页。好吧。。。 这一篇文章说一下散列表hashMap的实现。那么为什么要使用hashMap?hashMap又有什么优势呢?hashMap是如何检索数据的?我们一点一点的来解答。 在我们学习一门…

探索SwitchYard 2.0.0.Alpha2快速入门

在我的最后一篇文章中,我解释了如何在WildFly 8.1上使用SwitchYard。 同时,该项目很忙,并发布了另一个Alpha2。 这是一个很好的机会,在这里浏览快速入门并刷新您的记忆。 除了版本更改之外,您仍然可以使用较早的博客来…

走进webpack(1)--环境拆分及模块化

初级的文章和demo已经基本完成了,代码也已经上传到了我的github上,如果你对webpack的使用并不是十分了解,那么建议你回头看下走近系列,里面包括了当前项目中使用频繁的插件,loader的讲解。以及基本的webpack配置&#…

适用于微服务架构的Apache Camel

在知道微服务架构被称为之前,我一直在使用它们。 我曾经使用过由隔离模块组成的管道应用程序,这些模块通过队列相互交互。 从那时起,许多(前)ThoughtWorks专家讨论了微服务。 首先是 Fred George, 然后是 J…

QueryString加密

有些人不想由URL暴露一些訊息,除了可以使用URL Rewrite之外,其實簡便一點的方法還有使用編碼or加密來達到偽裝的目的。使用Base64的原因是因為他的編碼不會有難以接受的特殊字元(註1),你也可以用其他的編碼or加密算法替代(註2)。其實這邊已經…

即时大数据流处理=即时风暴

在Ubuntu背后的公司Canonical,每6个月进行一次技术工作,以第一手测试我们的工具并向其他人展示新想法。 这次,我创建了一个即时大数据解决方案,更具体地讲是“即时风暴”。 Storm现在是Apache基金会的一部分,但以前St…

webstorm中vue项目--运行配制

## npm搭建的项目,需要运行npm run dev来启动 webstorm作为一款优秀的编辑器,通过配置运行设置,达到一键运行 1.添加node.js配置 2.configuration->node interpreter : 路径/node.exe 3.configuration->working directory: …

VS2010 自动化整理代码(1)--- VS正则表达替换 PK Vim

自从开始在VS2010的IDE中开始用正则表达式修改 最近为了给Fortran找个好一点的编辑器,又开始使用Vim了。Vim是久负盛名的编辑器之神,可我们习惯了Visual Studio的智能提示等方便的操作,就总在琢磨要是VS 1. VS正则表达替换 PK Vim 这是善用…

2019.7.16考试总结

对于这个狗屎成绩我不想说什么,,,,,前两次考炸也就算了,主要因为不会,这次考成这狗屎,是因为手残眼瘸大脑间歇性抽搐 T1:我是菜鸡,我是蒟蒻,我好菜…

PrimeFaces Extensions中的全新JSF组件

PrimeFaces扩展团队很高兴宣布即将推出的3.0.0主要版本的几个新组件。 我们的新提交人Francesco Strazzullo为该项目提供了“ Turbo Boost”,并带来了至少6个已成功集成的 JSF组件! 当前的开发状态是OpenShift上的deployet – 请查看展示柜。以下是有关添…

15 个最新的 CSS3 教程

1. 创建一个漂亮的图标 这个教程将教你如何用纯CSS3创建一个图中的图标2. CSS3 图片样式 这个教程将教你如何使用 box-shadow, border-radius和transition。3. CSS3 Transition 的模糊效果4. 实用的CSS3圆角表格5. 创建纯CSS3的票式标签6. 原始的鼠标浮动效果 这个教程将创建缩…

C++内存管理——指针数组

C/C程序中,指针和数组在不少地方可以相互替换着用,让人产生一种错觉,以为两者是等价的。但二者有着本质的区别:数组:要么在静态存储区被创建(如全局数组),要么在栈上被创建。数组名对应着(而不是…

flex弹性盒子

注意事项 1.设为Flex布局之后,子元素的float,clear和vertical-align属性都讲失效 2.采用Flex布局的元素,称为Flex容器(Flex container),所有的子元素成为容器成员,称为Flex项目(Fle…

开始JBoss BPM流程的3种基本方法

这一集提示和技巧将帮助您了解根据需要启动流程实例的最佳方法。 规划项目可能包括流程项目,但是您是否考虑过可以启动流程的各种方式? 也许您的JBoss BPM Suite在您的体系结构中本地运行,也许您在云中运行,但是无论它在哪里&am…

用asp.net编写冒泡排序法

这里写了一个冒泡排序的函数. int[] a newint[10] { 12,564,95,44,69,499,693,6746,6496,124}; for(inti0;i<a.Length;i) for(intj i1; j <10; j) { int min a[i]; if (a[i] > a[j]) //升序排列 …

7月17日每日一答

1 什么是闭包函数&#xff0c;闭包函数满足什么样的条件&#xff1f;请写一个常见的闭包函数。 所谓的函数闭包本质是函数的嵌套和高阶函数。我们来看看要实现函数闭包要满足什么条件&#xff08;缺一不可&#xff09;&#xff1a; 1)必须嵌套函数 2)内嵌函数必须引用一个定义在…