{"id":18065294,"url":"https://github.com/jerry-git/logplot","last_synced_at":"2025-04-11T18:31:54.193Z","repository":{"id":57438824,"uuid":"147964391","full_name":"jerry-git/logplot","owner":"jerry-git","description":"Awesome interactive plots from custom logs","archived":false,"fork":false,"pushed_at":"2018-10-27T14:06:50.000Z","size":24694,"stargazers_count":27,"open_issues_count":8,"forks_count":3,"subscribers_count":4,"default_branch":"master","last_synced_at":"2025-03-25T14:21:35.160Z","etag":null,"topics":["logging","matplotlib","python3","visualization"],"latest_commit_sha":null,"homepage":"","language":"Python","has_issues":true,"has_wiki":null,"has_pages":null,"mirror_url":null,"source_name":null,"license":"mit","status":null,"scm":"git","pull_requests_enabled":true,"icon_url":"https://github.com/jerry-git.png","metadata":{"files":{"readme":"README.md","changelog":"ChangeLog.md","contributing":null,"funding":null,"license":"LICENSE","code_of_conduct":null,"threat_model":null,"audit":null,"citation":null,"codeowners":null,"security":null,"support":null}},"created_at":"2018-09-08T19:39:50.000Z","updated_at":"2024-10-16T04:47:19.000Z","dependencies_parsed_at":"2022-09-08T09:50:12.540Z","dependency_job_id":null,"html_url":"https://github.com/jerry-git/logplot","commit_stats":null,"previous_names":[],"tags_count":18,"template":false,"template_full_name":null,"repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/jerry-git%2Flogplot","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/jerry-git%2Flogplot/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/jerry-git%2Flogplot/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/jerry-git%2Flogplot/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/jerry-git","download_url":"https://codeload.github.com/jerry-git/logplot/tar.gz/refs/heads/master","host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":248458570,"owners_count":21107107,"icon_url":"https://github.com/github.png","version":null,"created_at":"2022-05-30T11:31:42.601Z","updated_at":"2022-07-04T15:15:14.044Z","host_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub","repositories_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories","repository_names_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repository_names","owners_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners"}},"keywords":["logging","matplotlib","python3","visualization"],"created_at":"2024-10-31T06:09:45.849Z","updated_at":"2025-04-11T18:31:54.167Z","avatar_url":"https://github.com/jerry-git.png","language":"Python","funding_links":[],"categories":[],"sub_categories":[],"readme":"# LogPlot\n\n[![Build Status](https://travis-ci.org/jerry-git/logplot.svg?branch=master)](https://travis-ci.org/jerry-git/logplot)\n[![PyPI version](https://badge.fury.io/py/logplot.svg)](https://pypi.python.org/pypi/logplot/)\n[![PyPI pyversions](https://img.shields.io/pypi/pyversions/logplot.svg)](https://pypi.python.org/pypi/logplot/)\n[![codecov](https://codecov.io/gh/jerry-git/logplot/branch/master/graph/badge.svg)](https://codecov.io/gh/jerry-git/logplot)\n[![license](https://img.shields.io/github/license/jerry-git/logplot.svg)](https://github.com/jerry-git/logplot/blob/master/LICENSE)\n[![PRs](https://img.shields.io/badge/PRs-welcome-brightgreen.svg?style=flat-square)](http://makeapullrequest.com)\n\n\n\u003cp align=\"center\"\u003e\n  \u003cimg src=\"https://github.com/jerry-git/logplot/blob/master/doc/examples/example.gif\" alt=\"example gif\"/\u003e\n\u003c/p\u003e\n\n\n## Installation\n    $ pip3 install logplot\n    \n## Usage\n\n### Configuration\nIn order to plot interesting graphs from custom logs, `logplot` needs to know what log entries are considered interesting. \nThis can be done by defining `entries` and `special_entries` sections in the config file. \nThe main purpose of `entries` is to plot trends, i.e. connected points. This is useful e.g. for plotting state machine states. \n`special_entries` is for plotting single, unconnected points, such as errors.\n\nEach entry in `entries` and `special_entries` should have the following:\n* `identifier`: string to be searched from log entries\n* `value`: y-axis value in the plot\n\nIdeally, one entry in `entries` should have `initial_state: true`. This is used for separating plotted series from each other.\n\nYou 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.\n\n\nIn addition to the `entries` and `special-entries` sections, user can override default settings (see src/logplot/default_conf.yaml) in `general` section. \nFor example, it's the place where you can define the command to be used for opening the log in your favorite editor. \n   \nSee doc/example/user_conf.yaml and corresponding log file (doc/example/log.txt) for full example.\n\n### Plotting logs\n\n    $ logplot path/to/log -c path/to/conf/file\n    \nFor example, this:\n\n    $ logplot doc/examples/log.txt -c doc/examples/user_conf.yaml\n\nyields this:\n\n\u003cp align=\"center\"\u003e\n  \u003cimg src=\"https://github.com/jerry-git/logplot/blob/master/doc/examples/plot.png\" alt=\"example plot\"/\u003e\n\u003c/p\u003e\n\nClicking a data point in the plot opens the log file in the correct line number in the editor defined in the configuration file.\nIf the `log_open_cmd` is not configured, the log will be opened with a default program defined by the OS. \nNote that `log_open_cmd` has to configured to be able to open the log in the correct line number.\n\n`logplot` will automatically identify different trends in the plotted entries. \nYou can toggle the visibility of these trends by clicking items in the legend.\n\nHere's an example of a bit bigger log which contains 100k entries, 13 different states, and 15 different trends.\n\n\t$ logplot doc/examples/log_huge.txt -c doc/examples/user_conf_huge.yaml\n\n\u003cp align=\"center\"\u003e\n  \u003cimg src=\"https://github.com/jerry-git/logplot/blob/master/doc/examples/plot_huge.png\" alt=\"example plot huge\"/\u003e\n\u003c/p\u003e\n\nAnd the same with three most occuring trends filtered out.\n\n\u003cp align=\"center\"\u003e\n  \u003cimg src=\"https://github.com/jerry-git/logplot/blob/master/doc/examples/plot_huge_filtered.png\" alt=\"example plot huge filtered\"/\u003e\n\u003c/p\u003e\n\n\n\n","project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fjerry-git%2Flogplot","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Fjerry-git%2Flogplot","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fjerry-git%2Flogplot/lists"}