最终的记录字典,或者:我们记录的最常用单词是什么?

日志文件是调试应用程序的最常用方法,在解决错误时,它们一定可以引导我们朝着正确的方向发展。 但是,大多数日志文件每天都会增加一百万条消息,因此,请务必使其尽可能清晰,这很重要,因此您和您的团队将能够了解引发错误时发生的故障。

除了发送变量外,我们大多数人还添加了自己的描述。 由于我们是数据紧缩的狂热爱好者,因此我们决定更深入地研究日志,并剖析这些日志消息,以查看您写入日志的内容。 您能猜出日志文件中最常用的词是什么吗?

40,000个项目,数千条原木线

在过去的几个月中,我们一直在寻求了解GitHub的顶级Java项目如何使用日志 。 我们查看了GitHub上排名前40万的存储库,并寻求了信息。

我们质疑标准Java日志记录是否已失效 ,询问了参数化日志记录与字符串串联的争斗,包括是否,为什么以及何时应使用每种日志记录 ,并回答了最终问题– 为什么生产日志无法帮助找到真正的根源错误原因 。

现在我们已经掌握了所有这些信息,是时候玩些乐趣了。 开发人员在登录时使用哪些词? 诅咒字词是否像我们认为的那样受欢迎? 开发人员是否使用英语以外的其他语言登录? 在日志方面,笑脸是一件难事吗?

日志行的长度重要吗?

我们寻求找到的第一个答案是日志消息有多长时间。 我们已经知道有多少个变量发送到日志了 (以及如何写),但是这次我们只关注字符串。

平均日志行长度(包括整个行,而不仅仅是消息)以及记录器的调用和日志级别,为32个字符。 但是这些角色怎么说? 它们代表什么词?

为了找出答案,我们创建了写入日志的字符串的索引,计算每个单词出现的次数。 这使我们总共获得了139,079个单词,出现了3,648,131个单词。 现在,我们可以回答以下问题:

日志中最流行的单词是什么?

排在第一位的是,在日志中找到的最受欢迎的单词是“ to”。 不太存在,尤其是因为它最常用作介词,例如:“此数据应发送到日志”。 希望该日志消息包含一些相关的数据和参数。

在我们发现写日志的前20个单词中,弹出的3个单词是“ Error”,“ Failed”和“ Exception”(大写和所有小写版本)。 进一步分解,单词错误总共有815个变体,失败单词有623个变体,例外单词有1,052个变体。

由于日志旨在帮助我们识别发生的情况,因此可以看到这些单词的重复性很高。 但是,鉴于oops一词有9个变体,因此最好在发生“糟糕的事情”时预先计划,而不是仅将其添加到日志中。

当然,我们也情不自禁地写了只由日志字典中的单词制成的句:

找不到连接
请求值异常
失败和错误

日志文件中使用的前20个词

想要改善您的日志?

日志文件中的字符串旨在帮助您了解引发严重错误时发生的情况,但通常情况下,日志消息中包含的内容不胜枚举。 尝试调试日志文件可能要花费数小时甚至数天的时间,并且不使用新功能,而是浪费时间来修复以前的部署中的错误。

我们在以前工作过的公司中都遇到过这些完全相同的问题,现在是时候构建一个使调试过程自动化的解决方案了。 当开发人员知道如果发生生产错误时,有一个安全网可以保护他们,他们会做更大胆的事情。

OverOps向您显示任何异常,记录的错误或警告背后的变量状态,而无需依赖实际记录的信息。 您可以在错误的整个调用堆栈中看到完整的源代码和变量状态,甚至在微服务和计算机上也可以看到。

OverOps还会向您显示在错误之前在生产中记录的最后250个DEBUG,TRACE和INFO级别的语句,即使它们已关闭并且从未到达日志文件。

探索调试生产错误的新方法。 观看OverOps的现场演示 。

登录外语

我们不了解您,但是当我们想到日志文件时,我们会看到很长的文本行,这些文本行旨在帮助我们解决应用程序行为中的难题。 对于我们来说,该文本是英文的,但是开发人员是否愿意以其母语登录?

在我们检查的803,869条日志消息中,最受欢迎的是英语,其中70%以上写在消息中。 尽管它可能会统治日志,但这并不是我们找到的唯一语言。 实际上,我们发现了35种其他语言以及英语。

第二受欢迎的语言是法语,但仅占日志消息的4.37%。 我们发现了许多其他语言,从挪威语(占日志行的2.4%)到南非荷兰语(占1%多一点), 他加禄语 ,罗马尼亚语,简体中文,我们甚至在孟加拉语中找到了几行和马其顿语。

排名前20位的常用记录语言

我们还找到了什么?

用户的安全是每个公司的重中之重。 还是……? 我们决定通过日志查看是否正确。 当然,这些是您的日志文件,但是在其中保留个人身份信息似乎是错误的。

在我们遇到的示例中,我们可以看到信用卡号,电话号码,地址甚至密码都以纯文本格式保存到日志中。 kes。 这里有一些例子:

…” validateCreditCardNumber –” + creditCardNumber +…

…”不带文件名的处理请求:phoneNumber =(” + phoneNumber…

……“密码:” +密码……

令人高兴的是,我们遇到的另一个有趣发现是使用笑脸。 我们发现了11张鼻子快乐的笑脸�� 和4张悲伤的鼻子鼻子�� 。 我们还遇到了很多没有鼻子的高兴/悲伤的面Kong(77悲伤��和42开心��)–但其中大多数以原始形式使用-冒号和方括号,而不是表示喜悦或悲伤。

最后的想法

日志文件与…逃生室非常相似。 您发现自己处于锁定状态(引发了严重错误或异常),只有一点点线索(您的日志文件),并且必须及时解决大难题,否则您会迷失(您的用户)。

日志文件在那里可以为我们提供帮助,但有时似乎我们忘记了它们对于我们理解,调试和修复错误应该足够有意义。 如果与此相关,则应该知道有使用日志文件的更好方法。 立即尝试 。

翻译自: https://www.javacodegeeks.com/2017/03/ultimate-java-logging-dictionary-common-words-developers-log.html

终极Java日志字典:开发人员最常记录的单词是什么?相关推荐

  1. java单词按字典排序_最终Java日志字典:开发人员最常记录的单词是什么?

    java单词按字典排序 最终的记录字典,或者:我们记录的最常见单词是什么? 日志文件是调试应用程序的最常用方法,当解决错误时,它们肯定可以引导我们朝正确的方向发展. 但是,大多数日志文件每天都会增加一 ...

  2. Java开发人员最常犯的10个错误,你犯过几个?

    点击蓝色"程序猿DD"关注我哟 加个"星标",不忘签到哦 来源:http://t.cn/EJscOju 阅读目录 Array转ArrayList 判断一个数组是 ...

  3. SearchHit转成java对象_Java开发中最常犯的10个错误,你中招了吗?

    http://www.programcreek.com/2014/05/top-10-mistakes-java-developers-make/ 阅读目录 Array转ArrayList 判断一个数 ...

  4. think in java interview-高级开发人员面试宝典(二)

    think in java interview-高级开发人员面试宝典(二) 分类: 面经2013-08-05 00:4318634人阅读评论(58)收藏举报 目录(?)[+] 从现在开始,以样题的方式 ...

  5. Java 8:开发人员怎么看?

    由于Java 8发行倒计时已经开始,因此Java开发人员似乎肯定已经准备好参与其中. 根据Typesafe的一项调查 ,参与其中的开发人员中有65%回答说他们将在24个月的计划中迁移到Java 8,而 ...

  6. [置顶] think in java interview-高级开发人员面试宝典(二)

    从现在开始,以样题的方式一一列出各种面试题以及点评,考虑到我在前文中说的,对于一些大型的外资型公司,你将会面临全程英语面试,因此我在文章中也会出现许多全英语样题. 这些题目来自于各个真实的公司,公司名 ...

  7. java三件套_Java开发人员应该知道的三件事

    java三件套 对于那些长期关注JavaOne 2012会议的读者来说,这是一篇有趣的文章. 我最近对Java冠军Heinz Kabutz的采访引起了我的注意: 包括他的Java内存难题程序,从Jav ...

  8. javaone_JavaOne 2012:101种改进Java的方法-开发人员参与为何如此重要

    javaone Bruno Souza , Martijn Verburg和Heather Vancura在希尔顿酒店的美国大陆宴会厅4中展示了" 101种改善Java的方法:开发人员为何如 ...

  9. JavaOne 2012:101种改进Java的方法-开发人员参与为何如此重要

    Bruno Souza , Martijn Verburg和Heather Vancura在希尔顿酒店的大陆宴会厅4中展示了" 101种改进Java的方法:开发人员参与为何如此重要" ...

最新文章

  1. English in 999
  2. 西天取经为节约成本该裁掉哪位?
  3. linux环境下安装gcc
  4. 文件上传函数(get post assert)
  5. 光线求交加速算法:kd-树
  6. springboot templates读取不到_精通 Spring Boot 系列 04
  7. struts2 s:file标签使用及文件上传例子
  8. 《算法》-1.5-并查集算法
  9. ios 改变图片尺寸_iOS 修改图片尺寸的方法
  10. 中国第一,全球领先的「浪潮」:用智慧计算征服的计算力天下
  11. MQTT断线重连及订阅消息恢复
  12. 阿里巴巴常用的12种开发工具,赶紧收藏
  13. ORA-12154 另一种解决方式,IIS发布后出现的---解决思路---终极方案
  14. css3 简单的动画实现欢乐愉快的小鱼
  15. a += a-= a*a
  16. 什么是计算机网络 它有哪些主要功能,什么是计算机网络及主要功能有哪些?...
  17. Python 爬虫学习笔记(十(2))scrapy爬取图书电商实战详解
  18. 18.Oracle10g服务器管理恢复--RMAN备用数据库(练习31.32)
  19. 深入浅出CChart 每日一课——快乐高四第五十七课 新的起点,炫彩界面库之老树新芽
  20. Shopee招聘主页下面一排建筑简笔画代表哪里

热门文章

  1. Vue.js2.0开发环境搭建(四)
  2. 并发编程 – Concurrent 用户指南
  3. Hibernate之必须导入jar包
  4. 加油四班!加油佟穆!我们的征途是星辰大海!!!
  5. javaweb实现分页(二)
  6. Linux中安装nc(netcat)常见问题
  7. java design按钮_DesignJava 设计模式,讲述 的各种 方便在项目中进行 框架结构 Develop 238万源代码下载- www.pudn.com...
  8. 二级导航 sql php,帝国cms栏目导航调用之SQL语句调用一级栏目和二级栏目的方法...
  9. python 线性回归函数_Python实现的简单线性回归算法实例分析
  10. oracle中join另一个表后会查询不出一些数据_面试必备 | 8个Hive数据仓工具面试题锦集!...