java单词按字典排序_最终Java日志字典:开发人员最常记录的单词是什么?
java单词按字典排序
最终的记录字典,或者:我们记录的最常见单词是什么?
日志文件是调试应用程序的最常用方法,当解决错误时,它们肯定可以引导我们朝正确的方向发展。 但是,大多数日志文件每天都会增加一百万条消息,因此,请务必使其尽可能清晰,这很重要,因此您和您的团队将能够了解引发错误时发生的故障。
除了发送变量外,我们大多数人还添加了自己的描述。 由于我们是数据紧缩的狂热爱好者,因此我们决定更深入地研究日志,并剖析这些日志消息,以查看您写入日志的内容。 您能猜出日志文件中最常用的词是什么吗?
40,000个项目,数千条原木线
在过去的几个月中,我们一直在寻求了解GitHub的顶级Java项目如何使用日志 。 我们查看了GitHub上排名前40万的存储库,并寻求了信息。
我们质疑标准Java日志记录是否已失效 ,询问了参数化日志记录与字符串连接的斗争,包括是否,为什么以及何时应使用每种日志记录 ,并回答了最终问题– 为什么生产日志无法帮助找到真正的根源错误原因 。
现在我们掌握了所有这些信息,是时候玩些乐趣了。 开发人员在登录时使用哪些词? 诅咒字词是否像我们认为的那样受欢迎? 开发人员是否使用英语以外的其他语言登录? 在日志方面,笑脸是一件难事吗?
日志行的长度重要吗?
我们寻求找到的第一个答案是日志消息有多长时间。 我们已经知道有多少变量发送到日志了 (以及如何写),但是这次我们只关注字符串。
平均日志行长度(包括整个行,而不仅仅是消息)以及记录器的调用和日志级别,为32个字符。 但是这些角色怎么说? 它们代表什么词?
为了找到答案,我们创建了一个写入日志的字符串的索引,计算每个单词出现的次数。 这使我们总共获得了139,079个单词,出现了3,648,131个单词。 现在,我们可以回答以下问题:
日志上最流行的单词是什么?
排在第一位的是,在日志中找到的最受欢迎的单词是“ to”。 不太存在,特别是因为它最常用作介词,例如:“此数据应发送到日志”。 希望该日志消息包含一些相关的数据和参数。
在我们发现写日志的前20个词中,弹出的3个词是大写和所有小写版本的“错误”,“失败”和“异常”。 进一步分解,单词错误总共有815个变体,失败单词有623个变体,例外单词有1,052个变体。
由于日志旨在帮助我们识别发生的情况,因此可以看到这些单词的高度重复是有意义的。 但是,考虑到oops有9个变体,因此最好在发生“糟糕的事情”时预先计划,而不是仅将其添加到日志中。
当然,我们不由自主地写了只由日志字典中的单词制成的made句:
找不到连接
请求值异常
失败和错误
日志文件中使用的前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�� 。 我们还遇到了很多没有鼻子的快乐/悲伤的面Kong(77悲伤��和42开心��)–但其中大多数以原始形式使用-冒号和方括号,而不是表示喜悦或悲伤。
最后的想法
日志文件与…逃生室非常相似。 您发现自己处于锁定状态(引发了严重错误或异常),只有一点点线索(您的日志文件),并且必须及时解决大难题,否则您会迷失(用户)。
日志文件在那里可以为我们提供帮助,但是有时似乎我们忘记了它们对于我们理解,调试和修复错误应该足够有意义。 如果与此相关,则应该知道使用日志文件有更好的方法。 立即尝试 。
翻译自: https://www.javacodegeeks.com/2017/03/ultimate-java-logging-dictionary-common-words-developers-log.html
java单词按字典排序
java单词按字典排序_最终Java日志字典:开发人员最常记录的单词是什么?相关推荐
- 终极Java日志字典:开发人员最常记录的单词是什么?
最终的记录字典,或者:我们记录的最常用单词是什么? 日志文件是调试应用程序的最常用方法,在解决错误时,它们一定可以引导我们朝着正确的方向发展. 但是,大多数日志文件每天都会增加一百万条消息,因此,请务 ...
- java对数组进行排序_用Java对数组进行排序所需的最少交换
java对数组进行排序 Problem: 问题: In this problem, we would have an unordered array with consecutive distinct ...
- java数组给名字排序_用Java给数组排序
public class BubbleDemo { public static void main(String[] args) { int arr[]={1,3,5,7,2,4,6,8,9}; bu ...
- ios 数组中的字典排序_利用数组和字典,实现按指定规则的排序
大家好,今日我们继续讲解数组与字典解决方案,今日讲解第47讲:利用字典和数组,实现按指定规则的排序.随着字典讲解的深入,我们发现字典真的很神奇,在VBA代码中,给人以十分清爽的感觉,在这套数组与字典解 ...
- java监听表变化_「Java Web开发」Filte(过滤器)、Listener(监听器)
过滤器简介: Filter(过滤器)是Servlet技术中最实用的技术,Web开发人员通过Filter技术,对Web服务器管理的所有Web资源:例如Jsp.Servlet.静态图片文件或静态html文 ...
- Java开发人员最常犯的10个错误,你犯过几个?
点击蓝色"程序猿DD"关注我哟 加个"星标",不忘签到哦 来源:http://t.cn/EJscOju 阅读目录 Array转ArrayList 判断一个数组是 ...
- python列表中字典排序_python中字典排序,列表中的字典排序
python中字典排序,列表中的字典排序 一.使用python模块:operator import operator #首先要导入模块operator x = {1:2, 3:4, 4:3, 2:1, ...
- python 按从小到大的顺序组合成一个字典_Python实现字典排序、按照list中字典的某个key排序的方法示例...
本文实例讲述了python实现字典排序.按照list中字典的某个key排序的方法.分享给大家供大家参考,具体如下: 1.给字典按照value按照从大到小排序 排序 dict = {'a':21, 'b ...
- java linkedlist排序_用Java对用户定义对象的LinkedList进行排序
要使用Java对列表进行排序,可以使用sort(List list) 方法.此方法可以对所有元素必须实现Comparable接口的列表进行排序. 在下面的示例中,House类是用户定义的.为了使其具有 ...
最新文章
- PyTorch框架:(4)如何去构建数据
- [转]如何提升你的沟通技巧
- 【数据库】索引优化策略
- Java 函数式接口以及Lambda举例
- 【转】游戏编程中的人工智能技术--神经网络
- 追剧计划第三弹!UC Berkeley出品,全栈深度学习!
- linux下python 2.4升级到 python 2.5
- html5--5-4 绘制矩形
- Youki的笔记本重装系统的方法~
- 流程图讲解_流程图小作文练习,详细讲解+精选范文!你们的魔鬼来了(一)...
- Echarts鼠标悬浮样式
- WCF把书读薄(3)——数据契约、消息契约与错误契约
- axios与ajax对比,AjAX 步骤和对比fetch和axios
- Matlab2018如何画函数曲线,2018年Matlab画函数图像.doc
- java实现注册的短信验证码
- Python如何爬取免费爬虫ip
- 云杰恒指:期货交易操盘手是怎样的体验?
- 气传导耳机和骨传导耳机的区别是啥?气传导耳机有哪些优缺点?
- html全选替换,网站上如何实现全选与反选
- 网络流量监控软件怎样实现
热门文章
- Loj#3077-「2019 集训队互测 Day 4」绝目编诗【结论,虚树,鸽笼原理】
- 2021牛客OI赛前集训营-提高组(第五场)D-牛牛的border【SAM】
- AT4513-[AGC030D]InversionSum【dp】
- jzoj2908,P1527-[集训队互测 2012]矩阵乘法【整体二分,二维树状数组】
- Ch5702-Count The Repetitions【字符串,倍增,dp】
- P2517-订货【网络流,费用流】
- AtCoder Regular Contest 105 部分 NIM游戏
- 2019.01.26【NOIP普及组】模拟赛C组总结
- 医院(jzoj 1611)
- 深度学习中反向传播算法简单推导笔记