日志

日志分为上线后(服务运行)、服务上线前两种日志,服务运行日志可在「服务管理 - 日志」中查询,服务上线前的日志统一在版本列表中查询。

服务运行日志

微信云托管将根据代码中配置文件所填的「日志采集路径」或新建版本时所填的「日志采集路径」进行服务日志采集上报,并按照时间倒序平铺在日志内容中,可在「服务管理 - 日志」中查看当前环境下所有服务、服务版本的日志数据。

image-20210617205805961

日志采集路径

可设置目录或文件,支持设置多个路径。支持标准输出(stdout)以及 * 通配路径(例:/logs/*),使用 ,(半角逗号)分割,留空将采集标准输出。

标准输出日志指的是在服务代码中将日志直接打印到控制台的标准输出(stdout)和标准错误(stderr)。

检索日志

选择检索的时间范围,然后在输入框填写检索语法(支持全文检索、模糊关键字检索、键值检索)

  • 全文检索,日志内容会根据分词符拆分为多个词组,用户可以输入特定的关键词精确检索到相关日志,也支持模糊关键字匹配检索。

  • 键值检索,日志内容以 JSON 对象格式返回,类似于键值对即key:value形式,其中 key 作为用户可以自定义输出日志内容对象属性字段,value 则为日志内容,在控制台中同样支持key:value格式定位日志,value 支持模糊关键字检索。

  • 模糊关键字检索,日志服务提供模糊查询的能力,通过特殊的模糊关键字进行日志检索,具体说明如下:

    元字符 描述
    * 模糊查询关键字,匹配零个、单个或多个任意字符。不支持开头*,例如,输入abc*,会返回以abc开头的所有命中日志
    ? 模糊查询关键字,特定位置匹配单个字符。例如,输入ab?c,会返回以ab为开头,以c为结尾字符,且两者之间且有一个字符的所有命中日志
  • 查询语法检索支持以下查询语法:

    语法 语义
    key:value 键值搜索格式,其中 value 支持?*模糊搜索
    A and B “与”逻辑,返回 A 与 B 的交集结果,若多个关键词,使用空格分割则默认为 and
    A or B “或”逻辑,返回 A 或 B 的并集结果
    not B “非”逻辑,返回不包含 B 的结果
    A not B “减”逻辑,返回符合 A 但不符合 B 的结果,即 A - B
    A:B key-value 对的查询格式,若 key 或者 value 中包含空格、冒号等关键字符,需要用引号包括。例如 "error level":high
    'a' 字符a将被视为普通字符,不会当作语法关键词处理
    "A" A 中的所有关键词都将被视为普通字符,不会当作语法关键词处理
    \ 转义字符,转义后的字符表示符号本身,例如转义引号\",转义冒号\:
    * 模糊查询关键字,匹配零个、单个或多个任意字符,不支持开头*,例如:输入abc*,会返回以abc开头的所有命中日志
    ? 模糊查询关键字,特定位置匹配单个字符。例如,输入ab?c,会返回以ab为开头,以c为结尾字符,且两者之间且有一个字符的所有命中日志
    • 运算符的优先级由高到低排序为: > " > and > not > or
    • 若 b 是文本,a=ba:b的区别在于前者是 a 全等于 b,后者是 a 包含 b(按分词逻辑处理,支持模糊搜索)。
    • 语法关键词不区分大小写。
查看上下文

点击某条日志后的「搜索icon」,云托管会根据该条日志的来源(服务-版本-容器实例),将该日志在原始文件中的前若干条(上文)或后若干条日志(下文)查找出来展示在弹框中。以方便在业务故障排查中快速查找相关故障信息,定位问题。

image-20210618155353500

点击「加载上文」可展示更多该条日志的上文内容,点击「加载下文」可展示更多该条日志的下文内容;

复制日志

点击某条日志后的「复制icon」,即将该条日志全部复制到粘贴板上。

image-20210618155458468

服务上线前日志

服务上线前日志即从拉代码、构建镜像、推送镜像、到版本部署到容器上的所有日志,可在版本列表中统一查看。

由流水线构建的镜像生成的版本可前往「流水线 - 任务列表」中,点击「日志」查看。