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单词按字典排序

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

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

相关文章

winscp使用密钥登录远程linux系统

说明: WinSCP是一个Windows环境下使用SSH的开源图形化SFTP客户端。同时putty也是一个开源连接ssh的windows客户端,本文介绍puttyWinSCP密钥对登录linux服务器。 1. 创建密钥对 安装openssl yum –y install openssl #openssl一般服务器都会预装 创建密…

php api 实例maccms,苹果cmsV10API接口说明

api接口仅供提供数据,可以直接在苹果CMS后台联盟采集中加入-并提供给他人采集。联盟资源分配唯一标识ID,用来区别绑定分类,这个ID一般由苹果CMS官方提供,不可随意修改设置,否则造成入库分类错乱。视频接口同时支持老板…

dml语句包括哪些_聊聊MySQL基本操作DDL,DML,DQL,DCL

本篇文章来回顾一下MySQL的基本操作之DDL,DML,DQL,DCL,每种操作都有各自不同的语法,常用的操作汇总如下。一、DDL-数据定义语言作用:数据定义语言主要用来定义数据库中的各类对象,包括用户、库、…

Windows 系统下使用 putty 客户端通过 SSH 远程连接 AWS 服务器

找到在购买亚马逊的AWS服务器时保存的密钥文件(假设为abc.pem)。 打开PuTTYgen,如下图,点击图中1处的“load”,找到abc.pem文件所在的位置,并选择abc.pem,确定; 然后,选择图中2处…

ip integrator_使用Oracle Data Integrator(和Kafka / MapR流)完善Lambda体系结构

ip integrator“ Lambda体系结构是一种数据处理体系结构,旨在通过利用批处理和流处理方法来处理大量数据。 这种体系结构方法尝试通过使用批处理提供批处理数据的全面而准确的视图,同时使用实时流处理提供在线数据的视图来平衡延迟 , 吞吐量和…

php 如何获取函数类型,PHP如何使用gettype()函数判断变量的类型?

gettype()函数是PHP中的一个内置函数,用于获取变量的类型;它可用于检查现有变量的类型。下面本篇文章就来给大家介绍一下gettype()函数,希望对大家有所帮助。【视频教程推荐:PHP教程】基本语法string gettype ( $var )参数&#x…

qfile 创建文件_Qt之二进制文件读写

点击上方“Qt学视觉”,选择“星标”公众号重磅干货,第一时间送达想要学习的同学们还请认真阅读每篇文章,相信你一定会有所收获除了文本文件之外,其他需要按照一定的格式定义读写的文件都称为二进制文件,每种格式的二进…

iis开启php验证码,php结合GD库实现中文验证码的简单方法

前言上一次写了一个常见的验证码,现在玩一下中文的验证码,顺便升级一下写的代码流程基本差不多先看GD库开启了没生成中文5位验证码开始画图画干扰素生成图形完事生成中文验证码//小小心机$hanzi "如果觉得写得还可以的话互相关注报团取暖交流经验来…

数据结构设计_合并多种疾病,如何设计数据结构?

如果一个患者合并多种疾病或应用多种药物,如何设计数据结构?例如病史,建议设计成多选题。如果未患病,只需点一次“全无”,操作简单。如果选了全无,其他选框系统自动关闭,就不能再后面的选项了&a…

java ee的小程序_用微服务和容器替换旧版Java EE应用程序服务器

java ee的小程序Lightbend最近对2000多个JVM开发人员进行了一项调查,结果刚刚发布。 开展该调查的目的是发现:发展趋势与IT基础架构趋势之间的相关性,处于数字化转型前沿的组织如何使他们的应用程序现代化以及当今对新兴开发人员技术最为关注…

Linux系统下如何安装JDK?

一、首先下载linux版本jdk 点击进入jdk官网 根据自己的需求,下载不同版本的jdk 2.将下载好的jdk压缩包,通过ftp上传到linux系统的当前用户下,我当前登录的用户为root用户 3.将上传后的jdk,解压到/usr/local/目录下&#xff0c…

django settings 定义的变量不存在_使用Django部署机器学习模型(1)

介绍机器学习(ML)应用的需求正在不断增长。许多资料显示了如何训练ML算法。然而,ML算法分为两个阶段:训练阶段——在这个阶段,基于历史数据训练ML算法,推理阶段——ML算法被用于计算对未知结果的新数据的预测。商业利益就处于推理阶段&#x…

php系统函数区分大小写,php函数名区分大小写吗?

PHP对大小写敏感问题的处理比较乱,写代码时可能偶尔出问题,所以下面本篇文章就来总结一下。有一定的参考价值,有需要的朋友可以参考一下,希望对你有所帮助。但我不是鼓励大家去用这些规则。推荐大家始终坚持“大小写敏感”&#x…

python条形堆积图_python – 使用DataFrame.plot显示堆积条形图中...

您可以使用plt.text根据数据将信息放在位置. 但是,如果你有非常小的条形,可能需要一些调整才能看起来很完美. df_total df[Total Cost] df df.iloc[:, 0:4] df.plot(x Airport, kindbarh,stacked True, title Breakdown of Costs, mark_right True) df_rel df[df.column…

mega2560单片机开发_[MEGA DEAL] Ultimate Java开发和认证指南(59%折扣)

mega2560单片机开发通过介绍世界上最受欢迎的编程语言之一掌握Java编程概念 嘿,怪胎, 本周,在我们的JCG Deals商店中 ,我们提供了一个极端的报价 。 我们提供的《 Ultimate Java Development and Certification Guide 》 仅售2…

java界面 文件选择器_掌握java技术 必备java工具应用知识

在现如今的互联网时代里,Java无疑是一种极为流行的开发语言,无论是程序界还是整个互联网行业势必带来很大的影响。不管是人才需求还是薪资水平上,Java的发展前景都是很乐观的。关于Java的一些常用的工具,也是需要我们不断去掌握和…

禅道项目管理系统里面的「产品」与「项目」的区别和关系

产品与项目的区别和关系 产品主要是管理需求、计划和发布。一个产品可能分解成多个小项目,由一个或多个项目组去完成。 项目主要是管理任务开发需求。禅道里,项目对应的是敏捷开发里的迭代。项目可以看做产品的迭代管理,一个项目更新产品的…

triplet loss后面不收敛_你的神经网络真的收敛了么?

1、为什么小模型的作为backbone效果会差?在深度学习目标检测(图像分割)领域,我们发现当我们使用层数越深,并且在imagenet上表现越好的分类网络作为backbone时,它的检测和分割效果越好效果越好。比如我们使用resnet101作为backbone…

php文件上传漏洞waf,文件上传绕过WAF

文件上传文件上传实质上还是客户端的POST请求,消息主体是一些上传信息。前端上传页面需要指定enctype为multipart/from-data才能正常上传文件。此处不讲各种中间件解析漏洞只列举集几种safe_dog对脚本文件上传拦截的绕过靶机环境:win2003safe_dog4.0.239…

java性能监视_Java 9和应用程序性能监视的激动人心之处

java性能监视通过AppDynamics解决应用程序问题的速度提高了10倍–以最小的开销在代码级深度监视生产应用程序。 开始免费试用! 在当今的现代计算时代,软件创新的不断增强使我们更接近软件革命的时代。 也许在遥远的未来,这可能是对21世纪记忆…