Skip to main content

cutelog2

PyPI Python versions CI License

cutelog2 is a PyQt6/PySide6 fork of cutelog by Alexander Bus, a graphical log viewer for Python’s standard logging module. It’s unaffiliated with the original project; see the migration PR for what changed and why. It can be targeted with a SocketHandler with no additional setup (see Usage). cutelog2 is cross-platform, although it’s mainly written and optimized for Linux.

Features

  • Allows any number of simultaneous connections

  • Customizable look of log levels and columns, with presets for each

  • Filtering based on level and namespace, as well as filtering by searching

  • Search through all records or only through filtered ones

  • Display extra fields under the message with Extra mode

  • View exception tracebacks or messages in a separate window

  • Dark theme (with its own set of colors for levels)

  • Pop tabs out of the window, merge records of multiple tabs into one

  • Save/load records to/from a file in JSON format

Installation

If you’re using Linux, install PySide6 (or PyQt6) from your package manager before installing cutelog2 (package name is probably python3-pyside6 or python-pyside6). Or just run pip install pyside6 to install it from pip, which is sub-optimal.

$ pip install --upgrade cutelog2

Or install the latest development version from the source:

$ pip install git+https://github.com/eachimei/cutelog2.git

Choosing a Qt binding

cutelog2 runs on either PySide6 or PyQt6, and both are covered by CI. PySide6 is installed by default because it is LGPLv3, so it places no licensing obligation on you; PyQt6 is GPLv3 or commercial.

To use PyQt6 instead:

$ pip install cutelog2[pyqt6]

If both are installed, cutelog2 prefers PySide6. Override with the QT_API environment variable, which accepts pyside6 or pyqt6:

$ QT_API=pyqt6 cutelog2

Requirements

  • Python 3.10 (or newer)

  • PySide6 or PyQt6

  • QtPy

Usage

  1. Start cutelog2

  2. Put the following into your code:

import logging
from logging.handlers import SocketHandler

log = logging.getLogger('Root logger')
log.setLevel(1)  # to send all messages to cutelog
socket_handler = SocketHandler('127.0.0.1', 19996)  # default listening address
log.addHandler(socket_handler)
log.info('Hello world!')

Afterwards it’s recommended to designate different loggers for different parts of your program with log_2 = log.getChild(“Child logger”). This will create “log namespaces” which allow you to filter out messages from various subsystems of your program.

Code, issues, changelog

Visit the project’s GitHub page.

Metadata

Release files for cutelog2 1.1.1

For a detailed explanation of source distributions (sdists) and built distributions (wheels), please see the package formats documentation.

Source distribution (sdist)

Source distribution for cutelog2 1.1.1
File Size Uploaded
cutelog2-1.1.1.tar.gz 132.0 kB Details

Built distribution (wheel)

Table of built distributions (wheels) for cutelog2 1.1.1
File Interpreter ABI Platform
cutelog2-1.1.1-py3-none-any.whl Python 3 none any Details

Total release size: 249.6 kB

Release files / cutelog2-1.1.1.tar.gz

Download URL cutelog2-1.1.1.tar.gz
Size 132.0 kB
Tags Source
SHA-256 checksum
How to use checksums
89fa613e11598162415f1b9aeda8c5bef4309cee88a05e95f9293f737d98705f
BLAKE2b-256 checksum
How to use checksums
e71229bb5f0eee50b29cd1ab7115f8a1ab1ab3f95969645ba93f7bbf5b6a3ec7
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
Yes
Uploaded via twine/7.0.0 CPython/3.13.14

Provenance

Provenance describes where a file came from. On PyPI, provenance is shared via attestations, which provide a verifiable record of the build or publishing details. View details, limitations and caveats.

PyPI Publish Attestation

PyPI verified that this artifact, at this checksum, originated from the publisher listed below.

Signed by GitHub Actions, verified by PyPI on Sep 3, 2026.

Transparency log

Release files / cutelog2-1.1.1-py3-none-any.whl

Download URL cutelog2-1.1.1-py3-none-any.whl
Size 117.7 kB
Tags Python 3
SHA-256 checksum
How to use checksums
404c932b0f5656b36c306d50bd3c934a7d6045bb2dad702ba2936cbbd22ec4c3
BLAKE2b-256 checksum
How to use checksums
47c6642e3e5fda8bbab8406d0180ff4c9df2308a3b9ab6927bafb3d7733b6c66
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
Yes
Uploaded via twine/7.0.0 CPython/3.13.14

Provenance

Provenance describes where a file came from. On PyPI, provenance is shared via attestations, which provide a verifiable record of the build or publishing details. View details, limitations and caveats.

PyPI Publish Attestation

PyPI verified that this artifact, at this checksum, originated from the publisher listed below.

Signed by GitHub Actions, verified by PyPI on Sep 3, 2026.

Transparency log

Release history Release notifications | RSS feed

1.2.0

2 release files

This release

1.1.1 This release

2 release files

1.1.0

2 release files

1.0.0

2 release files

Anthropic, PBC Visionary sponsor Bloomberg Visionary sponsor Hudson River Trading Visionary sponsor Meta Visionary sponsor NVIDIA Visionary sponsor Microsoft Sustainability sponsor Depot Continuous Integration AWS Cloud computing and Security Sponsor Datadog Monitoring Fastly CDN Google Download Analytics Sentry Error logging StatusPage Status page