终极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
總結
以上是生活随笔為你收集整理的终极Java日志字典:开发人员最常记录的单词是什么?的全部內容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: CDCE913产生任意频率
- 下一篇: 忘记WiFi密码怎么办腾达路由器密码忘记