#regex #filter #log #analysis #search

log-source

日志源是一个用于读取文件和套接字的crate

3个版本

0.1.3 2022年6月5日
0.1.1 2022年6月4日
0.1.0 2022年6月4日

#826 in 调试

每月 24 次下载
3个crate中(通过log-analyzer)使用

Unlicense OR MIT

7KB
143

日志分析器Pro (lap)

一个用Rust编写的功能强大的终端日志分析应用程序

demo

特性

  • 从文件或套接字读取日志。它会实时更新新条目
  • 可选地使用正则表达式格式化日志,以匹配日期、时间戳、应用、严重性、函数、有效负载等类别,并简化阅读和过滤
  • 包含、排除或标记正则表达式过滤器
  • 正则表达式搜索

安装

cargo install log-analyzer-pro

二进制可执行文件为 lap

使用方法

菜单导航

使用 Shift + 箭头⇥ Tab 在应用程序菜单间导航并更改焦点。

  • 左: ⇧ Shift +
  • 右: ⇧ Shift +
  • 上: ⇧ Shift +
  • 下: ⇧ Shift +

内部导航

当焦点在选项卡、列表或表格上时,使用 箭头 更改选择。

  • 左:
  • 右:
  • 上:
  • 下:

调整模块大小

  • 向左调整大小: ⇧ Shift + A
  • 向右调整大小: ⇧ Shift + D
  • 向上调整大小: ⇧ Shift + W
  • 向下调整大小: ⇧ Shift + S

源模块

  • +i 添加新的日志

过滤器模块

  • 添加新过滤器: +i
  • 使用 内部导航 选择过滤器
  • 编辑选定的过滤器: e

日志 & 搜索结果模块

  • 使用 内部导航 在日志中导航并应用水平滚动

  • ⌥ OptionAlt + 内部导航 进行快速滚动

  • Page UpPage Down 分页 1000 行

  • 导航到索引(或最接近的): ⇧ Shift + G

  • 切换列的ON/OFF

    • i: 索引
    • d: 日期
    • d: 时间戳
    • a: 应用
    • s: 严重性
    • f: 函数
    • p: 负载
  • 如果您在 搜索结果 中,可以转到 日志模块 中的选定索引: ⏎ Enter

搜索高亮

您可以通过在搜索中使用正则表达式组来突出显示搜索结果。组名应该是您想要突出显示匹配的颜色。可用的颜色列表如下

  • 黑色
  • 白色
  • 红色
  • 绿色
  • 黄色
  • 蓝色
  • 品红色
  • 青色
  • 灰色
  • 深灰色
  • 浅红色
  • 浅绿色
  • 浅黄色
  • 浅蓝色
  • 浅品红色
  • 浅青色

搜索示例

(?P<GREEN>success_ok).*(?P<BLUE>message)

自定义

您可以使用一个 JSON 文件通过命令行参数来自定义应用程序的外观以及预加载格式和过滤器

lap --settings path_to_settings_file.json
  • 主颜色:RGB 元组(红色,绿色,蓝色)
  • 格式:{别名,正则表达式} 列表
    • 正则表达式用于将行格式化为可用列。为此,您需要捕获组。有效的组包括
      • 日期
      • 时间戳
      • 应用
      • 严重性
      • 函数
      • 负载
  • 过滤器:{别名,操作,过滤器} 列表
    • 操作:以下之一 {INCLUDE, EXCLUDE, MARKER}
    • 过滤器:{column_name: 正则表达式和颜色: RGB 元组 (红色, 绿色, 蓝色)}。所有字段都是可选的

示例文件

{
    "primary_color": [0, 225, 255],
    "formats": [
        {
            "alias": "Default",
            "regex": "(?P<PAYLOAD>.*)"
        },
        {
            "alias": "Application",
            "regex": "(?P<DATE>[\\d]{4}-[\\d]{2}-[\\d]{2} [\\d]{2}:[\\d]{2}:[\\d]{2},[\\d]{3}) - \\[(?P<SEVERITY>[\\w]*)\\] - \\[([ \\w]{4})\\] - \\[(?P<TIMESTAMP>[ \\d]*)\\] (?P<PAYLOAD>.*)"
        },
        {
            "alias": "System",
            "regex": "(?P<DATE>[\\d]{4}-[\\d]{2}-[\\d]{2} [\\d]{2}:[\\d]{2}:[\\d]{2}.[\\d]*) \\((?P<APP>[\\w\\d]*)[/ ]?(?P<FUNCTION>.*)\\) (?P<PAYLOAD>.*)"
        }
    ],
    "filters": [
        {
            "alias": "System",
            "action": "MARKER",
            "filter": {
                "app": "system",
                "color": [100, 100, 0]
            }
        },
        {
            "alias": "SIGKILL",
            "action": "MARKER",
            "filter": {
                "payload": "SIGKILL",
                "color": [255, 0, 0]
            }
        }
    ]
}

许可证

双许可,MIT 或 UNLICENSE

依赖关系

~8–18MB
~269K SLoC