跳至内容

过滤 Appium 日志

有时可能需要从服务器日志中隐藏敏感信息,例如密码、设备标识符、哈希等。Appium 允许通过 --log-filters 命令行参数确保此类信息在日志中被删除。此参数允许您提供指向包含一个或多个日志混淆规则的特殊配置文件的路径。

配置格式

过滤配置必须是以下之一

  • 指向包含过滤规则数组的有效 JSON 文件的路径
  • 一个 Appium 配置 文件中的 log-filters 条目,其中包含内联规则数组

每个规则都是一个具有预定义属性集的对象。支持以下规则属性

  • pattern:要替换的有效 JavaScript RegExp 模式。必须是有效的非空模式。
  • text:要替换的简单非空精确文本匹配。必须提供此属性或上面的属性。如果同时提供,pattern 优先于 text
  • flags:给定模式的正则表达式标志。支持的标志与标准 JavaScript RegExp 构造函数 相同。请注意,g(全局匹配)标志始终启用。
  • replacer:要使用的替换值。默认情况下为 **SECURE**。允许空值。

配置示例

将所有 my.magic.app 字符串的出现替换为默认替换值

[
    {
        "text": "my.magic.app"
    }
]

将所有 my.magic.<any char> 字符串的出现替换为自定义替换值(不区分大小写)

[
    {
        "pattern": "my\\.magic\\.\\w",
        "flags": "i",
        "replacer": "***"
    }
]

将所有 my.magic.<any chars> 和/或 your.magic 字符串的出现替换为自定义替换值(不区分大小写)

[
    {
        "pattern": "my\\.magic\\.\\w+",
        "flags": "i",
        "replacer": "***"
    },
    {
        "pattern": "your\\.magic",
        "flags": "i",
        "replacer": "***"
    }
]

将所有日志行的长度截断为最大 15 个字符(高级)

[
    {
        "pattern": "(.{1,15}).*",
        "flags": "s",
        "replacer": "$1"
    }
]

配置错误处理

如果任何配置规则包含无效项(例如空/无效模式、空规则等),则 Appium 将打印有关收集到的错误的详细报告,并且在解决这些错误之前将无法启动。