程式設計師因重複記錄日誌撐爆ELK被辭退!

2021-01-10 JavaEdge

設為「星標」,好文章不錯過!

由於日誌配置繁雜,很多同學喜歡直接cv其他項目或網上博客的配置文件,而不仔細研究每個配置項。最常見的就是重複記錄日誌,這不但給查看和統計帶來不必要麻煩,還會增加磁碟和日誌收集系統負擔。

下面看幾個常見導致該錯誤的案例,大家引以為戒,避免被辭退。

1 logger配置繼承關係錯誤

定義方法記錄debug、info、warn、error四種日誌:

Logback配置

配置看沒啥問題,但執行方法後明顯記錄重複了:

錯因

CONSOLE這個Appender同時掛載到倆Logger,定義的<logger>和<root>,由於定義的<logger>繼承自<root>,所以同一日誌既會通過logger記錄,也會發送到root記錄,因此應用包下日誌出現重複。

如此配置的初衷是啥?

本想實現自定義logger配置,讓應用內日誌暫時開啟DEBUG級別。

其實,這無需重複掛載Appender,去掉<logger>下掛載的Appender即可

<logger name="org.javaedge.logging" level="DEBUG"/>若自定義<logger>需把日誌輸出到不同Appender,比如

應用日誌輸出到文件app.log其他框架日誌輸出到控制臺可設置<logger>的additivity屬性為false,就不會繼承<root> Appender

2 配置LevelFilter錯誤

記錄日誌到控制臺時,將日誌按級別記錄到倆文件

執行結果

info.log 文件包含INFO、WARN和ERROR三級日誌,不符預期

error.log包含WARN和ERROR倆級別日誌,導致日誌重複收集

事故問責

一些公司使用自動化ELK方案收集日誌,日誌會同時輸出到控制臺和文件,開發人員在本地測試不會關心文件中記錄的日誌,而在測試和生產環境又因為開發人員沒有伺服器訪問權限,所以原始日誌文件中的重複問題難以發現。

到底為何重複?

ThresholdFilter源碼解析

當日誌級別 ≥ 配置級別 返回NEUTRAL,繼續調用過濾器鏈上的下個過濾器否則返回DENY,直接拒絕記錄日誌

該案例我們將 ThresholdFilter 置 WARN,因此可記錄WARN和ERROR級日誌。

LevelFilter

用於比較日誌級別,然後進行相應處理。

若匹配就調用onMatch定義的處理方式:默認交給下一個過濾器處理(AbstractMatcherFilter基類中定義的默認值)否則調用onMismatch定義的處理方式:默認也是交給下一個過濾器

和ThresholdFilter不同,LevelFilter僅配置level無法真正起作用。

由於未配置onMatch和onMismatch屬性,所以該過濾器失效,導致INFO以上級別日誌都記錄了。

修正

配置LevelFilter的onMatch屬性為ACCEPT,表示接收INFO級別的日誌;配置onMismatch屬性為DENY,表示除了INFO級別都不記錄:

如此,_info.log文件只會有INFO級日誌,不會再出現日誌重複。

相關焦點

  • Kubernetes ELK 日誌收集
    Kubernetes EFK日誌收集Kubernetes日誌收集架構Kubernetes集群本身不提供收集日誌的解決方案,目前基於ELK日誌收集的方案主要有三種在節點運行一個agent收集日誌在Pod中包含一個sidecar容器來收集日誌直接通過應用程式將日誌信息推送到採集後端 (例kafka,es等)節點級別的日誌記錄
  • ELK5.X搭建並收集Nginx日誌
    ELK Stack 在最近兩年迅速崛起,成為機器數據分析,或者說實時日誌處理領域,開源界的第一選擇。和傳統的日誌處理方案相比,ELK Stack 具有如下幾個優點:處理方式靈活。Elasticsearch 是實時全文索引,不需要像 storm 那樣預先編程才能使用;配置簡易上手。
  • 程式設計師如何寫出高質量的代碼程序
    編碼是程式設計師最重要的工作,每個程式設計師都希望自己可以寫出優雅,高性能,高質量的代碼,對於大師級別的程式設計師,他們的寫的代碼就和藝術品一樣,你會忍不住發出驚嘆,他們怎麼可以創造出如此驚豔的作品出來。下面筆者就以自己的淺薄學識和一些經驗來總結下優秀的程序應該具有的特點。
  • ELK入門使用-與springboot集成
    什麼是ELKK我最初還以為是Kafka,事實上,ELK平臺是一個完整的日誌分析解決方案,由這三個開源工具構建而成:Elasticsearch、Logstash、Kibana。Elasticsearch用於深度搜索和數據分析,它是基於Apache Lucene的分布式開源搜尋引擎,無須預先定義數據結構就能動態地對數據進行索引;Logstash用於日誌集中管理,包括從多臺伺服器上傳輸和轉發日誌,並對日誌進行豐富和解析,是一個數據管道,提供了大量插件來支持數據的輸入和輸出處理;最後是Kibana,提供了強大而美觀的數據可視化,Kibana
  • Centos7筆記之ELK的filebeat安裝
    --->mkdir -p /home/elk/filebeats/xConfig2.去官網下載filebeat組件https://artifacts.elastic.co/downloads/beats/filebeat/filebeat-7.5.1-linux-x86_64.tar.gz執行命令--->wget -P /home/elk/filebeats/ https:
  • 混程式設計師的江湖,黑話一定要記牢
    當務之急是搶佔市場 == 快狂發補貼 快速建立用戶群體的壁壘 == 快拉他們進微信群 要讓用戶產生自發傳播 == 快讓他們轉發朋友圈為了健康發展我們要啟動下輪融資 == 公司沒錢了 我們辭退了一些跟不上公司發展的同事
  • 隱婚白領因懷孕被公司辭退 法院判雙方繼續履約
    隱婚白領因懷孕被公司辭退 法院判雙方繼續履約   庭審:辭退原因成焦點  庭審中,張女士承認隱婚事實,稱怕公司知道後拒絕錄用她,且這屬於個人隱私,與勞動合同無關。另外,公司招聘時並沒明確此崗位拒招已婚人員,不能以不誠信或違反公司員工手冊為由解約。  銘萬智達公司則堅稱,辭退張女士是因她不誠信,而非因其懷孕,並向法庭提交了公司懷孕休假的員工材料,稱有懷孕員工並沒被辭退。
  • Apache分布式日誌系統:高通量、低延遲
    【IT168 資訊】日誌,可以說是程式設計師最熟悉的一種數據結構了。網絡設備、系統及服務程序等,在運作時都會產生一個叫log的事件記錄;每一行日誌都記載著日期、時間、使用者及動作等相關操作的描述。它存在於大家每天的工作中,是一組只追加,嚴格有序的記錄序列。日誌是一種很有效的數據結構,可用來解決很多分布式系統的問題。
  • 程式設計師不會給產品取英文名被罵後懟領導:你行你上
    2020-11-22 11:27:34 來源: 石在澳洲 舉報   許多程式設計師可能都面對過這個問題
  • 為什麼老闆辭退你不是一件簡單的事情?看完這5點,給自己添底氣
    「工作做得好好地,老闆突然叫我到辦公室想要辭退我,我該怎麼辦?」先別急著走人,我們慢慢來。爭取不濟,我們也要為好好找到下一份工作做好打算不是?很多時候,公司會為了減少裁員賠償金,而直接口頭和你說:「你明天別來了」、「請去人事部辦理離職」等向你發出口頭的辭退,其實,公司真正的意圖是「誤導你去人事部提出辦理離職手續」,將公司自己主動裁員的行為,變成了你自己去人事部門「申請主動離職」。
  • 初中學歷可以轉行做程式設計師?
    初中學歷可以轉行做程式設計師,但是能否有更好的發展很難說。我本人普通本科畢業,做了六年程式設計師,而且我本科期間所學專業也不是計算機,後來成為程式設計師也是自學轉行的,自認為轉行做程式設計師並不難。雖然題主你目前只有初中學歷,但是想成為程式設計師其實也不難,以我的經驗,只要26個英文字母認得全,有一點英語基礎,去培訓機構培訓三個月,基本就能寫程序,成為一名初級程式設計師。
  • 萌妹太豐滿外套爆開 胸部撐爆衣服走光的女星
    這支視頻的主角,是日本知名寫真女星「赤根京」,1990年出生的她有著C90/W60/H90的好身材,一向以無下限的性感尺度吸引著男粉絲,擁有貨真價實的G罩杯的她在代言「競泳水著」的開胸泳衣爆紅後,接連拍攝重口味的性感寫真。由於喜歡電玩、動漫畫,所以也時常以Cosplay的造型現身。這支影片中她便是在裝扮成《魔法少女小圓》裡的巴麻美一角時,繃開了角色服裝的扣子。
  • 程式設計師「不惑」的 30 歲到了,就該給年輕人讓位嗎?
    知乎上,已經有程式設計師的「月經貼」,那就是:30歲了,程式設計師最迷茫的年紀,該怎麼辦?更年輕的畢業生已經在路上...當然,這裡也涉及不少人對程式設計師(碼農們)的一個誤解,那就是程式設計師做的都是重複性的、機械性的工作,但並非如此。對每個程式設計師來說,是一個項目接一個項目做的。項目面前,人人平等。但是,面對新項目時,經理給不給你機會參與,這就存在不平等了。怎麼理解呢?
  • 員工連續16天未在微信群籤到被辭退 企業敗訴
    一員工因未按企業要求在APP籤到,被以曠工為由辭退。雙方因此對簿公堂。微信群發布的考勤制度有法律效力嗎?「單位於2014年4月3日和我籤訂了無固定期限勞動合同,但沒有任何正當理由辭退我,屬於違法解除勞動關係。」趙某表示。他提交的證據顯示,公司發布的消息未寫入公司的考勤管理制度。
  • 電工因超齡被老闆無故辭退,是委曲求全,還是要求賠償
    那麼有人就會問了,如果45歲以上的電工都面臨著被辭退的危險,這群人該何去何從呢?畢竟企業不是慈善機構,肯定是利益至上。老黃今年剛剛46出頭,是工廠唯一的老電工,因為設備維護得好,平時清閒,成為別人眼中嫉妒的對象,老黃也賴得跟這些人做解釋。可時間一長,老闆自然從別人口中得知老黃的清閒,試問哪個老闆想看員工不工作也能領工資,哪個老闆不是以利益至上呢?
  • 網站伺服器被入侵該如何查詢攻擊日誌
    系統日誌信息在windows系統軟體運行過程中會不斷地被記錄,依據記錄的種類能夠分成系統日誌、IIS系統日誌、ftp客戶端系統日誌、資料庫系統日誌、郵件服務系統日誌等。
  • 使用Flink進行實時日誌聚合:第一部分
    更具體地說,我們將:a) 討論流式應用程式的日誌記錄要求b) 檢查通用日誌聚合系統的組件c) 從頭開始構建可擴展的日誌聚合框架d) 將我們的定製解決方案與現成的工具進行比較記錄流應用程式在進入分布式流應用程式的日誌記錄需求之前,讓我們退後一步,看看更傳統的批處理。
  • 海量日誌分析技術,聽說IT達人都想知道……
    其中,海量日誌尤為重要,不管是IT達人還是企業本身,掌握海量日誌的分析技術都必不可少。今天,就讓小愛帶你探秘海量日誌分析技術,一起來看吧。一.為什麼海量日誌很重要?在討論海量日誌分析技術之前,我們先來討論一下什麼是海量日誌。海量日誌是大數據的重要組成部分。
  • 奇聞:貪心不足,5米魚龍胃中現4米海龍化石,被撐爆脖頸處死去
    有句話叫做貪心不足蛇吞象,在生物界就有許多掠食者錯誤的判定了獵物的大小,在吞食的時候發生了意外,以前曾觀測到蟒蛇因吞掉大型鱷魚而撐爆自己肚皮的事件,還有海豚試圖吃掉大王酸漿魷而窒息死亡。那麼在史前時代的自然界,是否也有這麼偶然的事情發生呢?
  • Windows日誌怎麼清除?Windows入侵痕跡清理技巧
    01、Windows日誌清除windows 日誌路徑:系統日誌:%SystemRoot%\System32\Winevt\Logs\System.evtx安全日誌:%SystemRoot%\System32\Winevt\Logs\Security.evtx應用程式日誌:%SystemRoot%\System32\Winevt\Logs