动态日志配置

通常应用使用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实例、应用。

创建并启用日志配置

  1. 登录EDAS控制台

  2. 在左侧导航栏,单击应用管理 > 应用列表,在顶部菜单栏选择地域,并在页面上方选择微服务空间,然后在应用列表页面单击具体的应用名称。

  3. 应用总览页面左侧导航栏,单击日志中心,然后单击动态日志配置页签。

  4. 根据当前应用使用的日志框架,单击添加日志配置,在添加log4j2日志配置添加logback日志配置面板配置日志信息。image.jpeg

    1. 自定义日志名称以及日志描述。

    2. 配置来源

      • 从应用中抓取:将从指定运行中应用版本的一个实例抓取应用原始的日志配置,回显在配置内容输入框中。

      • 自定义:可直接将准备好的配置内容粘贴至配置内容输入框中。

  5. 完成配置后,单击验证日志配置,配置的内容被发送至一个运行中的实例进行验证。控制台出现以下提示,表明验证成功,然后单击下一步image.jpeg

  6. 选择生效对象页签,选择生效对象,即整个应用或某些实例,然后单击确认

  7. log4j2日志框架logback日志框架区域的日志列表,单击操作列的启用。启用后,新的日志配置生效。

相关操作

  • 启用:使该条配置对相应的生效对象起作用。

  • 禁用:使该条配置失效。失效后,次优先级的配置生效。若无生效记录,应用原始日志配置生效。

  • 恢复应用原始日志配置:将自动禁用所有记录的配置,恢复应用原始日志配置。

FAQ

如何恢复使用应用原始日志配置?

  • 方法一:

    动态日志配置页签,单击恢复应用原始日志配置

  • 方法二:

    log4j2日志框架logback日志框架区域的日志列表,单击操作列的禁用,手动禁用所有日志配置。

同时存在多个启用配置记录,哪个配置生效?

按优先级别生效:实例>应用分组>应用。

如何查看实例生效的日志配置信息?

  • 方法一:

    启用日志配置文件后,将以com.alibaba.agent.dynamic.log.config为Logger名称,INFO级别输出生效配置内容,如下图所示。image.jpeg

    说明

    以上日志内容的输出位置取决于对Logger com.alibaba.agent.dynamic.log.config的日志配置。

  • 方法二:

    /home/admin/.opt/ArmsAgent/路径下找到以.applied为名称开始的文件,即为当前生效的日志配置,否则为应用原始日志配置。

应用使用groovy脚本或编程方式进行日志配置,EDAS支持进行动态日志配置吗?

不支持。

若启用的日志配置格式存在问题,是否会导致日志失效?

如果启用日志配置文件后,无法配置相应的日志框架,则仍保持使用应用的原始日志配置。

说明

log4j2框架的YAML和JSON格式存在日志框架无法对格式进行有效验证,导致无法达到预期效果的情况。

抓取日志时,能抓取到Spring Boot的日志级别配置吗?

支持。