通常应用使用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的日志级别配置吗?
支持。