java单词按字典排序_最终Java日志字典:开发人员最常记录的单词是什么?
java單詞按字典排序
最終的記錄字典,或者:我們記錄的最常見單詞是什么?
日志文件是調(diào)試應(yīng)用程序的最常用方法,當(dāng)解決錯誤時,它們肯定可以引導(dǎo)我們朝正確的方向發(fā)展。 但是,大多數(shù)日志文件每天都會增加一百萬條消息,因此,請務(wù)必使其盡可能清晰,這很重要,因此您和您的團隊將能夠了解引發(fā)錯誤時發(fā)生的故障。
除了發(fā)送變量外,我們大多數(shù)人還添加了自己的描述。 由于我們是數(shù)據(jù)緊縮的狂熱愛好者,因此我們決定更深入地研究日志,并剖析這些日志消息,以查看您寫入日志的內(nèi)容。 您能猜出日志文件中最常用的詞是什么嗎?
40,000個項目,數(shù)千條原木線
在過去的幾個月中,我們一直在尋求了解GitHub的頂級Java項目如何使用日志 。 我們查看了GitHub上排名前40萬的存儲庫,并尋求了信息。
我們質(zhì)疑標(biāo)準(zhǔn)Java日志記錄是否已失效 ,詢問了參數(shù)化日志記錄與字符串連接的斗爭,包括是否,為什么以及何時應(yīng)使用每種日志記錄 ,并回答了最終問題– 為什么生產(chǎn)日志無法幫助找到真正的根源錯誤原因 。
現(xiàn)在我們掌握了所有這些信息,是時候玩些樂趣了。 開發(fā)人員在登錄時使用哪些詞? 詛咒字詞是否像我們認(rèn)為的那樣受歡迎? 開發(fā)人員是否使用英語以外的其他語言登錄? 在日志方面,笑臉是一件難事嗎?
日志行的長度重要嗎?
我們尋求找到的第一個答案是日志消息有多長時間。 我們已經(jīng)知道有多少變量發(fā)送到日志了 (以及如何寫),但是這次我們只關(guān)注字符串。
平均日志行長度(包括整個行,而不僅僅是消息)以及記錄器的調(diào)用和日志級別,為32個字符。 但是這些角色怎么說? 它們代表什么詞?
為了找到答案,我們創(chuàng)建了一個寫入日志的字符串的索引,計算每個單詞出現(xiàn)的次數(shù)。 這使我們總共獲得了139,079個單詞,出現(xiàn)了3,648,131個單詞。 現(xiàn)在,我們可以回答以下問題:
日志上最流行的單詞是什么?
排在第一位的是,在日志中找到的最受歡迎的單詞是“ to”。 不太存在,特別是因為它最常用作介詞,例如:“此數(shù)據(jù)應(yīng)發(fā)送到日志”。 希望該日志消息包含一些相關(guān)的數(shù)據(jù)和參數(shù)。
在我們發(fā)現(xiàn)寫日志的前20個詞中,彈出的3個詞是大寫和所有小寫版本的“錯誤”,“失敗”和“異常”。 進一步分解,單詞錯誤總共有815個變體,失敗單詞有623個變體,例外單詞有1,052個變體。
由于日志旨在幫助我們識別發(fā)生的情況,因此可以看到這些單詞的高度重復(fù)是有意義的。 但是,考慮到oops有9個變體,因此最好在發(fā)生“糟糕的事情”時預(yù)先計劃,而不是僅將其添加到日志中。
當(dāng)然,我們不由自主地寫了只由日志字典中的單詞制成的made句:
找不到連接
請求值異常
失敗和錯誤
日志文件中使用的前20個詞
想要改善您的日志?
日志文件中的字符串旨在幫助您了解引發(fā)嚴(yán)重錯誤時發(fā)生的情況,但通常情況下,日志消息中包含的內(nèi)容不勝枚舉。 嘗試調(diào)試日志文件可能需要花費數(shù)小時甚至數(shù)天的時間,并且不使用新功能,而是浪費時間來修復(fù)以前的部署中的錯誤。
我們在以前工作過的公司中都遇到過這些完全相同的問題,現(xiàn)在是時候構(gòu)建一個使調(diào)試過程自動化的解決方案了。 當(dāng)開發(fā)人員知道如果發(fā)生生產(chǎn)錯誤時,有一個安全網(wǎng)可以保護它們,那么開發(fā)人員就會做更多大膽的事情。
OverOps向您顯示任何異常,記錄的錯誤或警告背后的變量狀態(tài),而無需依賴實際記錄的信息。 您可以在錯誤的整個調(diào)用堆棧中看到完整的源代碼和變量狀態(tài),甚至在微服務(wù)和計算機上也可以看到。
OverOps還會向您顯示在錯誤之前在生產(chǎn)中記錄的最后250個DEBUG,TRACE和INFO級別的語句,即使它們已關(guān)閉并且從未到達(dá)日志文件。
探索調(diào)試生產(chǎn)中錯誤的新方法。 觀看OverOps的現(xiàn)場演示 。
登錄外語
我們不了解您,但是當(dāng)我們想到日志文件時,我們會可視化長行文本,這些文本旨在幫助我們解決應(yīng)用程序行為的難題。 對我們來說,該文本是英文的,但是開發(fā)人員是否愿意以其母語登錄?
在我們檢查的803,869條日志消息中,最受歡迎的是英語,其中70%以上寫在消息中。 盡管它可能會統(tǒng)治日志,但這并不是我們找到的唯一語言。 實際上,我們發(fā)現(xiàn)了35種其他語言以及英語。
第二受歡迎的語言是法語,但僅占日志消息的4.37%。 我們發(fā)現(xiàn)了許多其他語言,從挪威語(記錄了2.4%的日志行)到南非荷蘭語(占1%的一點), 他加祿語 ,羅馬尼亞語,簡體中文,我們甚至在孟加拉語中找到了幾行和馬其頓語。
前20種常用記錄語言
我們還找到了什么?
用戶的安全是每個公司的重中之重。 還是……? 我們決定通過日志查看是否正確。 當(dāng)然,這些是您的日志文件,但是在其中保留個人身份信息似乎是錯誤的。
在我們遇到的示例中,我們可以看到信用卡號,電話號碼,地址甚至密碼都以純文本格式保存到日志中。 kes 這里有一些例子:
…” validateCreditCardNumber –” + creditCardNumber +…
…”不帶文件名的處理請求:phoneNumber =(” + phoneNumber…
……“密碼:” +密碼……
令人高興的是,我們遇到的另一個有趣發(fā)現(xiàn)是使用笑臉。 我們發(fā)現(xiàn)了11張鼻子快樂的笑臉�� 和4張帶有鼻子的悲傷面Kong�� 。 我們還遇到了很多沒有鼻子的快樂/悲傷的面Kong(77悲傷��和42開心��)–但其中大多數(shù)以原始形式使用-冒號和方括號,而不是表示喜悅或悲傷。
最后的想法
日志文件與…逃生室非常相似。 您發(fā)現(xiàn)自己處于鎖定狀態(tài)(引發(fā)了嚴(yán)重錯誤或異常),只有一點點線索(您的日志文件),并且必須及時解決大難題,否則您會迷失(用戶)。
日志文件在那里可以為我們提供幫助,但是有時似乎我們忘記了它們對于我們理解,調(diào)試和修復(fù)錯誤應(yīng)該足夠有意義。 如果與此相關(guān),則應(yīng)該知道使用日志文件有更好的方法。 立即嘗試 。
翻譯自: https://www.javacodegeeks.com/2017/03/ultimate-java-logging-dictionary-common-words-developers-log.html
java單詞按字典排序
總結(jié)
以上是生活随笔為你收集整理的java单词按字典排序_最终Java日志字典:开发人员最常记录的单词是什么?的全部內(nèi)容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: 白名单限制ddos攻击吗(白名单限制dd
- 下一篇: ip integrator_使用Orac