Skip to main content

log2http watches log files and sends new contents to a specified http endpoint.

Project description

log2http

log2http watches log files and sends new contents to a specified http endpoint. That's it.

Install

You will need Python >= 3.6.

Install the application like this (preferably in a virtualenv):

pip install log2http

Setup

Place a YAML config file like the following at a location of your preference:

-
  logfile: /Users/demo/example.log
  endpoint: http://endpoint1.example.com/tag/sample
  min_lines: 5
-
  logfile: /var/log/system.log
  endpoint: http://endpoint2.example.com/tag/syslog
  min_lines: 2
  • logfile specifies the file to watch
  • endpoint is the http endpoint you want to send the collected log lines to (as POST). Usually, this will be the url of a logging service, e.g. http://logs-01.loggly.com/bulk/token/tag/example/
  • min_lines sets the minimum of lines that must be collected until a http request is made (use this to minimize http overhead per logged event)

Usage

Once installed, you can launch log2http from your terminal:

log2http --config=/path/to/the/config.yml

When log2http is running, create some sample events to see if they are being collected. For example in bash:

for i in {1..6}; do echo "hello world" >> example.log; done

The output should tell you if events are being collected and sent.

You could also start the log collector from Python like this:

from log2http import load_config, LogCollector

config = load_config('/your/path/to/config.yml')
collector = LogCollector(config)
with collector:
    collector.start() # will run until interrupted

Watch out: log lines always need to end with a newline character (\n). If a line does not end with a newline character, log2http will wait indefinitely until it is written to the file.

Local development

See requirements-dev.txt for development requirements.

Run tests with pytest.

Run static type checking with mypy --ignore-missing-imports log2http.

Project details


Download files

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

Source Distribution

log2http-0.1.1.tar.gz (4.6 kB view details)

Uploaded Source

Built Distribution

If you're not sure about the file name format, learn more about wheel file names.

log2http-0.1.1-py3-none-any.whl (5.3 kB view details)

Uploaded Python 3

File details

Details for the file log2http-0.1.1.tar.gz.

File metadata

  • Download URL: log2http-0.1.1.tar.gz
  • Upload date:
  • Size: 4.6 kB
  • Tags: Source
  • Uploaded using Trusted Publishing? No
  • Uploaded via: twine/1.12.1 pkginfo/1.4.2 requests/2.19.1 setuptools/40.2.0 requests-toolbelt/0.8.0 tqdm/4.26.0 CPython/3.6.5

File hashes

Hashes for log2http-0.1.1.tar.gz
Algorithm Hash digest
SHA256 7fdf3072c085d1cbd17d09ef13fadfe485656d23ff3a4228c45f8ccdf6e5017a
MD5 a17b5af289c7f79d6dfa9cfa39ba68c9
BLAKE2b-256 82cdbce21a319c0b0d2e11bd4020ca2b2e7ed5ab2ab6549454adb4839488622e

See more details on using hashes here.

File details

Details for the file log2http-0.1.1-py3-none-any.whl.

File metadata

  • Download URL: log2http-0.1.1-py3-none-any.whl
  • Upload date:
  • Size: 5.3 kB
  • Tags: Python 3
  • Uploaded using Trusted Publishing? No
  • Uploaded via: twine/1.12.1 pkginfo/1.4.2 requests/2.19.1 setuptools/40.2.0 requests-toolbelt/0.8.0 tqdm/4.26.0 CPython/3.6.5

File hashes

Hashes for log2http-0.1.1-py3-none-any.whl
Algorithm Hash digest
SHA256 6e3e3dd704fe94ff3395c8676b403e8c9aea6326bf85e5145484b9444d103020
MD5 4dc6387f8b1aa8577413e46801c1ac1f
BLAKE2b-256 c0fcaa7793857ad202ddde50b28d7fcd0c5f2d4de619e1cd90201538306d38d8

See more details on using hashes here.

Supported by

AWS Cloud computing and Security Sponsor Datadog Monitoring Depot Continuous Integration Fastly CDN Google Download Analytics Pingdom Monitoring Sentry Error logging StatusPage Status page