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