通常應用使用logback、log4j等日志框架記錄日志,通過日志配置文件配置日志級別,最終將日志內容輸出到文件中。EDAS支持應用在運行時修改日志配置并生效。您可以在EDAS控制臺創建日志配置,并添加配置內容(或通過抓取原有日志配置)和選擇生效對象。啟用后,新的配置立即生效。本文介紹如何進行動態日志配置。
前提條件
已創建K8s應用。具體操作,請參見創建和部署應用概述(K8s)。
應用掛載的arms agent版本為≥2.9.0。
說明使用EDAS創建的應用默認已掛載arms agent。您可登錄應用實例,查看
/home/admin/.opt/ArmsAgent/version
檢查arms agent版本。
使用限制
該功能支持的日志框架,以及完整的日志配置文件支持的格式如下:
log4j2:支持XML、YAML、JSON、Properties。
說明YAML、JSON格式需應用本身包含日志框架所需類庫,不明確的情況下,建議使用XML。
logback:支持XML。
您可以在日志框架支持的配置下,使用完整的日志配置文件,包括任意的級別、日志輸出等。
生效對象
Pod實例、應用。
創建并啟用日志配置
登錄EDAS控制臺。
在左側導航欄,單擊 ,在頂部菜單欄選擇地域,并在頁面上方選擇微服務空間,然后在應用列表頁面單擊具體的應用名稱。
在應用總覽頁面左側導航欄,單擊日志中心,然后單擊動態日志配置頁簽。
根據當前應用使用的日志框架,單擊添加日志配置,在添加log4j2日志配置或添加logback日志配置面板配置日志信息。
自定義日志名稱以及日志描述。
配置來源:
從應用中抓取:將從指定運行中應用版本的一個實例抓取應用原始的日志配置,回顯在配置內容輸入框中。
自定義:可直接將準備好的配置內容粘貼至配置內容輸入框中。
完成配置后,單擊驗證日志配置,配置的內容被發送至一個運行中的實例進行驗證。控制臺出現以下提示,表明驗證成功,然后單擊下一步。
在選擇生效對象頁簽,選擇生效對象,即整個應用或某些實例,然后單擊確認。
在log4j2日志框架或logback日志框架區域的日志列表,單擊操作列的啟用。啟用后,新的日志配置生效。
相關操作
啟用:使該條配置對相應的生效對象起作用。
禁用:使該條配置失效。失效后,次優先級的配置生效。若無生效記錄,應用原始日志配置生效。
恢復應用原始日志配置:將自動禁用所有記錄的配置,恢復應用原始日志配置。
FAQ
如何恢復使用應用原始日志配置?
方法一:
在動態日志配置頁簽,單擊恢復應用原始日志配置。
方法二:
在log4j2日志框架或logback日志框架區域的日志列表,單擊操作列的禁用,手動禁用所有日志配置。
同時存在多個啟用配置記錄,哪個配置生效?
按優先級別生效:實例>應用分組>應用。
如何查看實例生效的日志配置信息?
方法一:
啟用日志配置文件后,將以
com.alibaba.agent.dynamic.log.config
為Logger名稱,INFO級別輸出生效配置內容,如下圖所示。說明以上日志內容的輸出位置取決于對
Logger com.alibaba.agent.dynamic.log.config
的日志配置。方法二:
在
/home/admin/.opt/ArmsAgent/
路徑下找到以.applied
為名稱開始的文件,即為當前生效的日志配置,否則為應用原始日志配置。
應用使用groovy腳本或編程方式進行日志配置,EDAS支持進行動態日志配置嗎?
不支持。
若啟用的日志配置格式存在問題,是否會導致日志失效?
如果啟用日志配置文件后,無法配置相應的日志框架,則仍保持使用應用的原始日志配置。
log4j2框架的YAML和JSON格式存在日志框架無法對格式進行有效驗證,導致無法達到預期效果的情況。
抓取日志時,能抓取到Spring Boot的日志級別配置嗎?
支持。