Skip to main content

logs watching + webui

Project description


distributed log tail viewer


- tail log files and forward them to web in runtime
- dynamically parse and process logs
- aggregating and collecting logs
- alerting

Quick start

Running a simple one-host configuration.

.. code-block:: bash

$ pip install logdog

Help output:

.. code-block:: bash

$  logdog --help 
logdog command line interface

logdog [<pipe-namespace>...] [options]
logdog (-h | --help)
logdog --version

<pipe-namespace> One or more pipe namespaces to be run

-h --help Show this screen
--version Show version
-v --verbose Run in verbose mode
-l --log-level=<level> Set internal logging level [default: INFO]
-f --log-format=<format> Set internal logging format [default: quiet]
-c --config=<config> Configuration file (yaml config)
-s --sources=<file:...> Force specify files to be watched
-H --handler=<handler> Force set handler for all sources
(e.g. --handler=viewers.console)
--reset-indices Remove current indices (will reset watching state)

Prepare config file:

.. code-block:: yaml

# config.yml
- /var/log/*.log
- /var/log/*/*.log
- /var/log/syslog

Please, see ` <logdog/>`_

Start watching:

.. code-block:: bash

$ logdog --config=config.yml

You can run watching and viewing parts separately:

.. code-block:: bash

$ logdog watch --config=config.yml
# another console
$ logdog view --config=config.yml


YAML is used as a main format for writing configuration.

Default config:

.. code-block:: yaml

# <path-to-file>
- /var/log/*.log
- /var/log/*/*.log
- /var/log/syslog

``sources`` is a list of target files/logs. Alternatively, this section can be re-written the following way:

.. code-block:: yaml

- /var/log/*.log:
- /var/log/*/*.log:
# ^ note. 4 spaces
# in case of 2 spaces it will be a key in the list object
# {'/var/log/*/*.log': None,
# 'handler': ''}
# but must be {'/var/log/*/*.log': {'handler': ''}}
- /var/log/syslog: {handler:}

Full ``sources`` format:

.. code-block:: none

- (path | search pattern)
# or (`handler`, `watcher`, `meta` are optional)
- (path | search pattern):
handler: handler-name # default
watcher: watcher-name # default pollers.file-watcher
meta: a-dictionary-containing-any-meta-info # e.g. {tags: [tag1, tag2]}
# or
- (path | search pattern): handler-name
# or
- (path | search pattern): {handler:}
# or
- (path | search pattern): {watcher: poller.custom-file-poller}
# or
- (path | search pattern): {meta: {tags: [log]}}

Example 1:

.. code-block:: yaml

- /var/log/syslog: {handler:, meta: {tags: [syslog]}
# or
- /var/log/syslog2:
- syslog


.. image::


- cover with tests
- detecting new files
- colorize logs
- add documentation
- zmq connectors
- mongodb collector
- webui storages
- webui filtering / searching

Project details

Download files

Download the file for your platform. If you're not sure which to choose, learn more about installing packages.

Files for logdog, version 0.2.9
Filename, size File type Python version Upload date Hashes
Filename, size logdog-0.2.9.tar.gz (7.7 MB) File type Source Python version None Upload date Hashes View hashes

Supported by

Elastic Elastic Search Pingdom Pingdom Monitoring Google Google BigQuery Sentry Sentry Error logging AWS AWS Cloud computing DataDog DataDog Monitoring Fastly Fastly CDN SignalFx SignalFx Supporter DigiCert DigiCert EV certificate StatusPage StatusPage Status page