Ecosyste.ms: Awesome
An open API service indexing awesome lists of open source software.
https://github.com/busimus/cutelog
GUI for logging
https://github.com/busimus/cutelog
gui log logging python qt
Last synced: 2 months ago
JSON representation
GUI for logging
- Host: GitHub
- URL: https://github.com/busimus/cutelog
- Owner: busimus
- License: mit
- Created: 2018-01-11T10:40:46.000Z (almost 7 years ago)
- Default Branch: master
- Last Pushed: 2023-10-06T14:40:52.000Z (over 1 year ago)
- Last Synced: 2024-05-07T11:43:02.540Z (8 months ago)
- Topics: gui, log, logging, python, qt
- Language: Python
- Homepage:
- Size: 1.1 MB
- Stars: 474
- Watchers: 24
- Forks: 43
- Open Issues: 11
-
Metadata Files:
- Readme: README.md
- License: LICENSE
Awesome Lists containing this project
README
# cutelog – GUI for logging
[![PyPi](https://img.shields.io/pypi/v/cutelog.svg?style=flat-square)](https://pypi.python.org/pypi/cutelog)This is a graphical log viewer for Python's logging module.
It can be targeted with a SocketHandler with no additional setup (see [Usage](#usage)).It can also be used from other languages or logging libraries with little effort (see the [Wiki](../../wiki/Creating-a-client-for-cutelog)).
For example, a Go library [gocutelog](https://github.com/busimus/gocutelog) shows how to enable
regular Go logging libraries to connect to cutelog.## 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](../../wiki/Creating-a-client-for-cutelog#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## Screenshots
Light theme | Dark theme
------------|-----------
|## Installation
**If you're using Linux**, install PyQt5 (or PySide2) from your package manager before installing cutelog (package name is probably ``python3-pyqt5`` or ``python-pyqt5``). Or just run ``pip install pyqt5`` to install it from pip, which is sub-optimal.```
$ pip install cutelog
```
Or install the latest development version from the source (requires PyQt5 to build resources):```
$ pip install git+https://github.com/busimus/cutelog.git
```### Requirements
* Python 3.5 (or newer)
* PyQt5 (preferably 5.6 or newer) or PySide2
* [QtPy](https://github.com/spyder-ide/qtpy)## Usage
1. Start `cutelog`
2. Put the following into your code:
```python
import logging
from logging.handlers import SocketHandlerlog = logging.getLogger('Root logger')
log.setLevel(1) # to send all records 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.## Attributions
Free software used:
* Qt via either:
* [PyQt5](https://riverbankcomputing.com/software/pyqt/intro) - GPLv3 License, Copyright (c) 2019 Riverbank Computing Limited
* [PySide2](https://wiki.qt.io/PySide2) - LGPLv3 License, Copyright (C) 2015 The Qt Company Ltd (http://www.qt.io/licensing/)
* [QtPy](https://github.com/spyder-ide/qtpy) - MIT License, Copyright (c) 2011- QtPy contributors and others
* [jsonstream](https://github.com/Dunes/json_stream) - MIT License, Copyright (c) 2020 Dunes
* [ion-icons](https://github.com/ionic-team/ionicons) - MIT License, Copyright (c) 2015-present Ionic (http://ionic.io/)And thanks to [logview](https://pythonhosted.org/logview/) by Vinay Sajip for UI inspiration.
### Copyright and license
This program is released under the MIT License (see LICENSE file).Copyright © 2023 bus and contributors.