- ๐ฆ Stay lightweight
- ๐ฎ Keep its features as simple as possible
- ๐ง Use SQL to filter JSON log files
- ๐ก Use the SQLite's powerful JSON query functions+operators!
- ๐ข Keep queried logs in a nice portable
SQLite
file - โก๏ธ Tail JSON log files based on your query predicates
- ๐ฆพ Run
SQLite
in-memory for faster processing
This tool doesn't have any plans to cover jq
or any other query syntax othen than provided out of the box from SQLite
.
cargo install jlq
It might help to first take a look at the options avaiable via 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
NOTE: When running jlq
with SQLite
on-disk mode (the default), a SQLite
file named jql.db
is created from the directory where the command was run.
jlq -q "log_line->>'status_code' IN (200, 400)" log_a.json log_b.json
jlq -t -q "log_line->>'status_code' IN (200, 400)" log_a.json log_b.json
jlq -t -m -q "log_line->>'status_code' IN (200, 400)" log_a.json log_b.json
PRs are welcome!
This project is licensed under the MIT license
Leave a โญ if you like this project
Made with ๐ using SQLite
๐ข and Rust
๐ฆ