Ecosyste.ms: Awesome
An open API service indexing awesome lists of open source software.
https://github.com/jerry-git/logplot
Awesome interactive plots from custom logs
https://github.com/jerry-git/logplot
logging matplotlib python3 visualization
Last synced: 8 days ago
JSON representation
Awesome interactive plots from custom logs
- Host: GitHub
- URL: https://github.com/jerry-git/logplot
- Owner: jerry-git
- License: mit
- Created: 2018-09-08T19:39:50.000Z (over 6 years ago)
- Default Branch: master
- Last Pushed: 2018-10-27T14:06:50.000Z (over 6 years ago)
- Last Synced: 2025-01-19T23:36:37.189Z (13 days ago)
- Topics: logging, matplotlib, python3, visualization
- Language: Python
- Homepage:
- Size: 23.6 MB
- Stars: 27
- Watchers: 4
- Forks: 3
- Open Issues: 8
-
Metadata Files:
- Readme: README.md
- Changelog: ChangeLog.md
- License: LICENSE
Awesome Lists containing this project
README
# LogPlot
[![Build Status](https://travis-ci.org/jerry-git/logplot.svg?branch=master)](https://travis-ci.org/jerry-git/logplot)
[![PyPI version](https://badge.fury.io/py/logplot.svg)](https://pypi.python.org/pypi/logplot/)
[![PyPI pyversions](https://img.shields.io/pypi/pyversions/logplot.svg)](https://pypi.python.org/pypi/logplot/)
[![codecov](https://codecov.io/gh/jerry-git/logplot/branch/master/graph/badge.svg)](https://codecov.io/gh/jerry-git/logplot)
[![license](https://img.shields.io/github/license/jerry-git/logplot.svg)](https://github.com/jerry-git/logplot/blob/master/LICENSE)
[![PRs](https://img.shields.io/badge/PRs-welcome-brightgreen.svg?style=flat-square)](http://makeapullrequest.com)
## Installation
$ pip3 install logplot
## Usage### Configuration
In order to plot interesting graphs from custom logs, `logplot` needs to know what log entries are considered interesting.
This can be done by defining `entries` and `special_entries` sections in the config file.
The main purpose of `entries` is to plot trends, i.e. connected points. This is useful e.g. for plotting state machine states.
`special_entries` is for plotting single, unconnected points, such as errors.Each entry in `entries` and `special_entries` should have the following:
* `identifier`: string to be searched from log entries
* `value`: y-axis value in the plotIdeally, one entry in `entries` should have `initial_state: true`. This is used for separating plotted series from each other.
You can define specific marker style for each entry in `special_entries`, refer to [`matplotlib` docs](https://matplotlib.org/api/markers_api.html) for available options.
In addition to the `entries` and `special-entries` sections, user can override default settings (see src/logplot/default_conf.yaml) in `general` section.
For example, it's the place where you can define the command to be used for opening the log in your favorite editor.
See doc/example/user_conf.yaml and corresponding log file (doc/example/log.txt) for full example.### Plotting logs
$ logplot path/to/log -c path/to/conf/file
For example, this:$ logplot doc/examples/log.txt -c doc/examples/user_conf.yaml
yields this:
Clicking a data point in the plot opens the log file in the correct line number in the editor defined in the configuration file.
If the `log_open_cmd` is not configured, the log will be opened with a default program defined by the OS.
Note that `log_open_cmd` has to configured to be able to open the log in the correct line number.`logplot` will automatically identify different trends in the plotted entries.
You can toggle the visibility of these trends by clicking items in the legend.Here's an example of a bit bigger log which contains 100k entries, 13 different states, and 15 different trends.
$ logplot doc/examples/log_huge.txt -c doc/examples/user_conf_huge.yaml
And the same with three most occuring trends filtered out.