Skip to main content

CLI for coloring lines from stdin based on a key identified by a regular expression

Project description

Colorby

Colorby is a Python program that makes it easier to understand interleaved log lines by coloring each line based on a matching part.

Example:

# Color some logs from systemd based on service name
$ journalctl _COMM=systemd --since -20m | grep '\.service' | colorby '\S+\.service'
Jun 07 14:36:03 iroh systemd[1]: Starting NetworkManager-dispatcher.service - Network Manager Script Dispatcher Service...
Jun 07 14:36:03 iroh systemd[1]: Started NetworkManager-dispatcher.service - Network Manager Script Dispatcher Service.
Jun 07 14:36:13 iroh systemd[1]: NetworkManager-dispatcher.service: Deactivated successfully.
Jun 07 14:37:59 iroh systemd[1]: Starting packagekit.service - PackageKit Daemon...
Jun 07 14:37:59 iroh systemd[1]: Started packagekit.service - PackageKit Daemon.
Jun 07 14:37:59 iroh systemd[1]: Starting flatpak-system-helper.service - flatpak system helper...
Jun 07 14:37:59 iroh systemd[1]: Started flatpak-system-helper.service - flatpak system helper.
Jun 07 14:43:09 iroh systemd[1]: packagekit.service: Deactivated successfully.
Jun 07 14:43:09 iroh systemd[1]: packagekit.service: Consumed 1.177s CPU time, 120.1M memory peak.
Jun 07 14:47:59 iroh systemd[1]: flatpak-system-helper.service: Deactivated successfully.
Jun 07 14:51:10 iroh systemd[1]: Starting fprintd.service - Fingerprint Authentication Daemon...
Jun 07 14:51:10 iroh systemd[1]: Started fprintd.service - Fingerprint Authentication Daemon.
Jun 07 14:51:40 iroh systemd[1]: fprintd.service: Deactivated successfully.

Note how this makes it easier to identify the lines corresponding to each service despite their interleaving.

(If you’re reading this on GitHub, you won’t see the colors. Read it on lumeh.org instead!)

Usage

For one-off uses, I recommend running the tool via uvx or pipx:

$ uvx colorby --help
usage: colorby [mode options] [other options] [REGEX]

Color each line from stdin based on its key identified by REGEX.
[…]

For more regular use, install the package using your preferred Python package manager.

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

colorby-1.0.0.tar.gz (5.3 kB view details)

Uploaded Source

Built Distribution

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

colorby-1.0.0-py3-none-any.whl (6.5 kB view details)

Uploaded Python 3

File details

Details for the file colorby-1.0.0.tar.gz.

File metadata

  • Download URL: colorby-1.0.0.tar.gz
  • Upload date:
  • Size: 5.3 kB
  • Tags: Source
  • Uploaded using Trusted Publishing? No
  • Uploaded via: uv/0.8.12

File hashes

Hashes for colorby-1.0.0.tar.gz
Algorithm Hash digest
SHA256 675749ed68c6bb7b5b8c9318f6947bbb2c9267f67a0f3cb5a5b219b6c9808d50
MD5 5d885232367754a606dd25faa4d5903e
BLAKE2b-256 8ff7823da53cf155ae21c6d5d982714f6c256af1f3750772519fcc6632021146

See more details on using hashes here.

File details

Details for the file colorby-1.0.0-py3-none-any.whl.

File metadata

  • Download URL: colorby-1.0.0-py3-none-any.whl
  • Upload date:
  • Size: 6.5 kB
  • Tags: Python 3
  • Uploaded using Trusted Publishing? No
  • Uploaded via: uv/0.8.12

File hashes

Hashes for colorby-1.0.0-py3-none-any.whl
Algorithm Hash digest
SHA256 0feb13786af9e93515203e48bce10607f4431a60758bbef62af61fe01c5867b9
MD5 82d81226e972791b0a5ba00de6982c31
BLAKE2b-256 b04c0b5f3660fe4222c22bf39dacb4786eab1b8c3e1feaca7a6e092fc742caa0

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