EFK上因雙引號未轉義導致日誌丟失問題

2021-10-18 19:21:23 字數 636 閱讀 4490

​最近查閱生產環境日誌後發現,有部分日誌在kibana上查詢不到,所以登入到pod上檢查了下,發現日誌內容是這樣的:

}, credit:null, growth:null, tag:null)]", 

"stack_trace": ""

}

msg中的內容中包含了雙引號,所以json解析的時候失敗了,因此日誌也就沒辦法上傳到日誌平台。

查閱logback配置:

<?xml  version="1.0" encoding="utf-8"?>

01024

猜測如果列印日誌中包含雙引號,則"msg":"%message"會直接寫入到json中,由於雙引號沒轉義,日誌解析時就報錯了。

所以稍微調整下配置,對%message中的雙引號進行轉義應該就能解決問題:

單引號,雙引號,無引號

單引號 所見即所得 雙引號 1 把雙引號的所有內容都輸出出來 2 如果中命令 要反引下 變數 特殊轉義符等,會先把變數 命令 特殊轉義符解析出結果再輸出最終內容。無引號 與雙引號基本相同,連續數字不用加任何引號 建議 指令碼中普通字串盡量雙引號,單純數字可以不用加引號 a 192 a 192 a b...

單引號和雙引號

char p1 1 char p2 1 1 的ascii碼值為49 0和49位址處為作業系統使用,故訪問這些位址如printf s,s,s p1,p2,p3 會產生段錯誤。printf n n的ascii碼值為10,同理,段錯誤。a 表示字元常量,在記憶體中佔1個位元組,a 1表示 a 的ascii...

單引號( )和雙引號( )

關鍵是要養成良好的習慣.單引號 一般用在單字元,如 c 雙引號 一般用在字串,如 abc 如果巢狀使用的話,一般用交替方法,尤其是html中.如,也可以改成.在分割乙個字串時要用到str.split或者regex.split。簡單的單個字串的替換,直接用字串.split 單個字串 多個字串的替換用r...