Skip to main content

Interactive command-line tool for parsing, filtering, summarizing, and exporting log files.

Project description

Logan-IQ: Log Analyzer Tool

Version Issues

An interactive command-line tool for parsing, filtering, summarizing, and exporting log files. Designed to handle multiple log formats with custom regex support and user-configurable preferences.

⚠️ Notice About Installation

Version 1.0.1 contains unintended scripts and should not be used.
Please use 1.0.2 or later for correct functionality.

Features

  • Parse logs using regex patterns (default or custom)
  • Filter logs by level, date range, or limit
  • Generate summary tables
  • Export logs to CSV or JSON
  • Interactive CLI
  • Colorful output and clean formatting
  • Easily testable and extensible

Install

Package is available on PyPI

pip install logan-iq

This installs the CLI globally and makes the logan-iq command available in your terminal.

🖥️ Startup

Logan-IQ Startup

How it Works

Core flow:

  1. Load Config or Defaults: Loads user preferences from config.json if it exists. CLI arguments always override the config file. If no file is provided and no config exists, the app prompts the user to specify a file.
  2. Parse Log File:

Each log line is converted into a structured dictionary with fields like datetime, level, message,and optionally ip or other fields depending on the format.

  1. Filter (Optional):

Narrow results by log level, date range, or limit the number of entries displayed.

  1. Analyze or Summarize:

Display logs in a terminal table or generate summary reports.

  1. Export (Optional):

Export filtered data to CSV or JSON for further analysis.

Available Formats

You can supply your own regex directly via CLI or in config.json. Or use the Built-in formats:

  • simple → generic logs with datetime, level and message
2025-08-28 12:34:56 [INFO] Server started: Listening on port 8080
  • apache → Apache access logs (common format)
192.200.2.2 - - [28/Aug/2025:12:34:56 +0000] "GET /index.html HTTP/1.1" 200 512
  • nginx → Nginx access logs (combined format, includes referrer & user-agent)
192.100.1.1 - - [28/Aug/2025:12:34:56 +0000] "GET /index.html HTTP/1.1" 200 1024 "http://example.com" "Mozilla/5.0"
  • json → JSON formatted logs (one object per line)
{
  "datetime": "2025-08-28 12:34:56",
  "level": "INFO",
  "message": "Server started",
  "method": "GET",
  "status": 200,
  "path": "/api/v1/users"
}
  • custom → Any user-defined regex Example (inline via CLI):
python main.py analyze --file logs/app.log --format custom --regex "^(?P<ts>\S+) (?P<level>\w+) (?P<msg>.*)$"

Or define in config.json:

{
  "default_file": "logs/custom_app.log",
  "format": "custom",
  "custom_regex": "^(?P<ts>\\S+) (?P<level>\\w+) (?P<msg>.*)$"
}

Running the CLI

Once installed, commands can be run directly via logan-iq:

  • For Interactive Mode
logan-iq interactive
logan-iq>> analyze --file logs/access.log --format nginx
  • Analyze Logs
logan-iq analyze --file path/to/logfile.log --format apache
  • Custom Regex
logan-iq analyze --file app.log --format custom --regex "^(?P<ts>\\S+) (?P<msg>.*)$"
  • Summarize Log Levels
logan-iq summarize --file path/to/logfile.log
  • Export Logs
logan-iq export --file path/to/logfile.log --output-format csv --output-path logs.csv

Configuration

On installation, a config.json is created on the user's system.

  • To show configurations
logan-iq interactive
logan-iq>> config show
  • To modify configurations
logan-iq>> config set --default-file logs/access.log --format nginx
logan-iq>> config set --format custom --custom-regex "^(?P<ts>\\S+) (?P<msg>.*)$"

Example with built-in format:

{
  "default_file": "logs/server_logs.log",
  "format": "nginx"
}

Example with custom format:

{
  "default_file": "logs/app.log",
  "format": "custom",
  "custom_regex": "^(?P<ts>\\S+) (?P<msg>.*)$"
}
  • CLI args always override config values.

  • If neither CLI args nor config exist, the app prompts for a file.

Dependencies

  • CLI built with Typer
  • Pretty tables via Tabulate
  • Colored output via PyFiglet
  • Unit testing via Pytest

Project details


Download files

Download the file for your platform. If you're not sure which to choose, learn more about installing packages.

Source Distribution

logan_iq-1.1.1.tar.gz (15.9 kB view details)

Uploaded Source

Built Distribution

If you're not sure about the file name format, learn more about wheel file names.

logan_iq-1.1.1-py3-none-any.whl (18.4 kB view details)

Uploaded Python 3

File details

Details for the file logan_iq-1.1.1.tar.gz.

File metadata

  • Download URL: logan_iq-1.1.1.tar.gz
  • Upload date:
  • Size: 15.9 kB
  • Tags: Source
  • Uploaded using Trusted Publishing? No
  • Uploaded via: twine/6.1.0 CPython/3.13.7

File hashes

Hashes for logan_iq-1.1.1.tar.gz
Algorithm Hash digest
SHA256 47e702ddcb7e6f6e3be16906ab81fc895d548058d2d9a2ffe79ee9d498a409cb
MD5 fb7343651783c3c44082e320f2ae9c5c
BLAKE2b-256 7c4b802fd458b45673633ab8b319eba4d68c7e06d02884728ef4392168bcab9d

See more details on using hashes here.

File details

Details for the file logan_iq-1.1.1-py3-none-any.whl.

File metadata

  • Download URL: logan_iq-1.1.1-py3-none-any.whl
  • Upload date:
  • Size: 18.4 kB
  • Tags: Python 3
  • Uploaded using Trusted Publishing? No
  • Uploaded via: twine/6.1.0 CPython/3.13.7

File hashes

Hashes for logan_iq-1.1.1-py3-none-any.whl
Algorithm Hash digest
SHA256 e556c39098b366456b15893811fb3da53e96f420f8160a4c8b7f70a8e1e0cb07
MD5 1c496e2231f79201df6e0e17e27e35e8
BLAKE2b-256 1ada03761b7c00fc44ae7eeb44fc9333c6e500b4f82b53d5358833366366c6ac

See more details on using hashes here.

Supported by

AWS Cloud computing and Security Sponsor Datadog Monitoring Depot Continuous Integration Fastly CDN Google Download Analytics Pingdom Monitoring Sentry Error logging StatusPage Status page