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

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

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

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

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

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

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

相关文章

iwrite提交不了作业_iWrite英语写作教学与评阅系统移动端——学生使用手册

通过微信搜索公众号:iWrite爱写作,点击“关注”。一、注册iWrite英语写作教学与评阅系统移动端首页底端显示“登录”按钮。首次关注,点击“登录”按钮,页面跳转至登录/注册界面。点击“注册账号”按钮,即可跳转至注册界…

阻塞IO与非阻塞IO

阻塞IO:操作系统等数据,只发生了一次调用,最大问题:cpu被耽搁了 非阻塞IO:问题:1、发生多次系统调用 2、数据不及时 IO multiplexing model io多路复用,多一个系统调用,但可以建…

matlab的输出(命令窗口、fprint函数、disp函数)

命令窗口直接输出,MATLAB的默认格式是精确到小数点后4位。如果一个数太大或太小,那么将会以科学记数法的形式显示。比如: format stytle 改变默认输出格式要用到format命令,可根据下表改变数据的输出格式 显示数值格式 Stytle …

g2 折线图点与点之间直线_科学网—ggplot2实现散点折线图 - 肖斌的博文

准备的数据:第一列是时间,第二列是样本,第三列是具体数值。横轴标为时间,纵坐标为具体数值,图中不同颜色展示不同样本。具体的代码:library(ggplot2)png("./xyz.png")(保存成png)upsups$date pde…

matlab 字符串处理

% 字符串处理 a a;bb b;ccccc;m % 获取字符串长度length(a) % 连接两个字符串,每个字符串最右边的空格被裁切 dstrcat(a,c) length(d) % 连接多行字符串,每行长度可不等,自动把非最长字符串最右边补空格 % 使与最长字符串相等,会忽略空字符串 est…

【c#基础】泛型

1:减少代码的选项可以是用Object类,也可以使用泛型 但是Object类进行类型传递不是类型安全的。泛型类使用泛型类型保证了类型安全。 泛型类 泛型方法 泛型接口、结构、委托 泛型优点: 1:性能 装箱和拆箱很容易使用,但性能损失比较…

nacos怎么修改服务分组_nacos服务注册如何配置分组?

同问,度娘一番,没找到答案,最终看的代码,大概知道怎么回事了。这个是下面引用源码的版本org.springframework.cloudspring-cloud-starter-alibaba-nacos-discoverycom.alibaba.nacosnacos-client0.2.2.RELEASEcom.alibaba.nacosna…

使用brew,cask和jenv在MacOSX上设置多个Java JRE / JDK

昨天在Java9的Jigsaw HackTheTower事件中,我意识到我需要加强我的游戏并改善我现有的机制,以在我的机器上维护几个不同的JDK。 我曾经手动下载jdk,或使用brew cask安装它们,我会在〜/ bash_profile上设置bash alias来在不同的 JA…

Codeforces - 102222C - Caesar Cipher

https://codeforc.es/gym/102222/my 好像在哪里见过这个东西&#xff1f;字符的左右移还是小心&#xff0c;注意在mod26范围内。 #include<bits/stdc.h> using namespace std; typedef long long ll;inline int read() {int x0;int f0;char c;do {cgetchar();if(c-)f1;} …

python os.path.exists判断文件或文件夹是否存在

import os#判断文件夹是否存在 dir os.path.exists(C:\\Users\\Desktop) print(dir:, dir)#判断文件是否存在 file os.path.exists(C:\\Users\\Desktop\\雍正王朝.txt) print(file:, file)运行结果 显示该文件及文件夹都存在

vue进入页面执行的钩子函数_解决VUE mounted 钩子函数执行时 img 未加载导致页面布局的问题...

项目需求&#xff1a;图片加载时&#xff0c;当鼠标滚动至当前图片进行加载并加上上滑特效&#xff0c;实现这个效果需要对文档文档滚动位置和图片的当前位置进行比较。但是mounted 钩子函数执行时img图片并未加载出来也就是占位为空&#xff0c;导致图片位置计算出问题。解决这…

微服务(Microservices)和服务网格(Service Mesh)架构概念整理

微服务&#xff08;Microservices&#xff09; 在过去的 2016 年和 2017 年&#xff0c;微服务技术迅猛普及&#xff0c;和容器技术一起成为这两年中最吸引眼球的技术热点。而以 Spring Cloud 为代表的传统侵入式开发框架&#xff0c;占据着微服务市场的主流地位。 微服务&…

python os.listdir列举当前文件夹下所有文件及文件夹

import ospath C:\\Users\\Desktop\\test str os.listdir(path) print(str)运行结果&#xff1a;1、2为文件夹&#xff0c;123.txt为文件

正则查找倒数第二个符合条件的字符串_EXCEL正则表达式的基础语法

正则表达式的基本概念及用途了解之后&#xff0c;我们就来学习下具体的语法&#xff0c;先以一个简单的例子来讲解。基础语法&#xff1a;比如&#xff0c;A1单元格中有一串字符&#xff1a;aabbccddaabbcc&#xff0c;我们要把其中的a找到&#xff0c;然后替换成o。代码如下&a…

javafx css样式_使用CSS设置JavaFX饼图样式

javafx css样式渲染图表时&#xff0c; JavaFX默认提供某些颜色。 但是&#xff0c;在某些情况下&#xff0c;您想自定义这些颜色。 在此博客文章中&#xff0c;我将使用一个示例来更改JavaFX饼图的颜色&#xff0c;该示例打算在今天下午在2013年RMOUG培训日的演示中包括。一些…

java 异步操作

/** * 异步删除 * * param keys */ public void asycExecute(String keys) { ExecutorService executor Executors.newFixedThreadPool(1); CompletableFuture<String> future CompletableFuture.supplyAsync(new Supplier<String>() { Override public String g…

企业发文的红头文件_【红头文件写作格式】 公司红头文件格式范本

红头文件写作格式 一、红头文件的制作及标准进行页面设臵选择“文件”——“页面设臵”选择“页边距”附签&#xff0c;上&#xff1a;3.7厘米&#xff0c;下&#xff1a;3.5厘米&#xff0c;左&#xff1a;2.8厘米&#xff0c;右&#xff1a;2.6厘米。选择“版式”附签&#x…

matlab 城市间最短路径

clear all;clc;close all; %最短路径代码&#xff0c;输入&#xff1a;起点空格终点&#xff08;大写字母&#xff0c;如:A F&#xff09; % 输出最短路径值d 最短路径路线 % W为一个对称矩阵&#xff0c;如果不能直接到达距离为inf % 本例中A到B距离为12; A到F距离为0; B到…

docker开放的端口_关于docker自动开放端口解决方案

在docker中只要有容器映射了端口docker就会自动加iptablesiptables -L -nChain DOCKER (8 references)target prot opt source destinationACCEPT tcp -- 0.0.0.0/0 172.18.0.2 tcp dpt:2379ACCEPT tcp -- 0.0.0.0/0 172.18.0.5 tcp dpt:8888ACCEPT udp -- 0.0.0.0/0 172.18.0.…

即将举行的网络研讨会:调试生产中Java的5种最佳实践

您的团队是否花费超过10&#xff05;的时间在生产环境中调试Java&#xff1f; 将新代码部署到生产中是一项艰巨的任务。 在您的本地环境中起作用的东西在生产中的作用并不相同&#xff0c;您可以通过用户来了解。 不理想吧&#xff1f; 生产中的调试是一个关键要素&#xff0…