#json-log #sqlite #json-query #json #query #log #jq

app jlq

使用 SQLite 的强大功能快速有效地查询 JSON 日志文件

1 个不稳定版本

0.1.0 2023 年 1 月 3 日

#20 in #json-log

MIT 许可证

9.5MB
158

包含 (Mach-o exe, 9.5MB) godeng, (Mach-o exe, 2.5MB) flog

jlq


License: MIT

使用 SQLite 的强大功能快速有效地查询 JSON 日志文件

jlq

📜 核心理念

  • 📦 保持轻量级
  • 🎮 尽可能简化功能
  • 🧠 使用 SQL 过滤 JSON 日志文件
  • 💡 使用 SQLite 强大的 JSON 查询函数+运算符
  • 🛢 将查询的日志保存在漂亮的便携式 SQLite 文件中
  • ⚡️ 根据您的查询谓词跟踪 JSON 日志文件
  • 🦾 以内存中运行 SQLite 的方式运行以提高处理速度

⚠️ 非目标

此工具没有计划覆盖 jq 或任何其他查询语法,除非 SQLite 提供的。

🚀 安装

Cargo

cargo install jlq

🛠️ 使用方法

首先查看通过 jql -h 可用的选项可能会有所帮助

命令行选项

jlq 0.1.0

USAGE:
    jlq [FLAGS] [OPTIONS] [FILE]...

FLAGS:
    -d, --debug                Activate debug mode
    -h, --help                 Prints help information
    -m, --in-memory-storage    Run SQLite in-memory mode
    -t, --tail
    -V, --version              Prints version information
    -v, --verbose              Verbose mode (-v, -vv, -vvv, etc.)

OPTIONS:
    -q, --query <query>    SQLite json query e.g. "log_line->>'level_name' = 'DEBUG'"

ARGS:
    <FILE>...    Files to process

注意:当使用磁盘模式(默认模式)运行 jlq 时,将在运行命令的目录中创建一个名为 jql.dbSQLite 文件。

将日志文件导入 SQLite,带或不带可选查询

jlq -q "log_line->>'status_code' IN (200, 400)" log_a.json log_b.json

使用磁盘 SQLite 文件跟踪日志文件

jlq -t -q "log_line->>'status_code' IN (200, 400)" log_a.json log_b.json

使用内存中的 SQLite 跟踪日志文件

jlq -t -m -q "log_line->>'status_code' IN (200, 400)" log_a.json log_b.json

贡献

欢迎提交 PR

许可证

本项目受 MIT 许可证的许可

显示您的支持

如果您喜欢此项目,请留下 ⭐


使用 💖 和 SQLite 🛢 和 Rust 🦀 制作

依赖项

~44MB
~716K SLoC