Python3 Logstash Logging Handler

0.4.80 · abandoned · verified Sun Apr 12

The `python3-logstash` library, version `0.4.80`, provides Python logging handlers for sending messages to a Logstash server over UDP or TCP. Originally created as a Python 3 fork of the `python-logstash` library, this specific package was last updated in July 2018. Due to its lack of recent updates, it appears to be unmaintained. For actively maintained alternatives with asynchronous capabilities, users often consider `python-logstash-async`.

Warnings

Install

Imports

Quickstart

This quickstart demonstrates how to configure a logger with `LogstashHandler` (UDP) or `TCPLogstashHandler` to send messages to a Logstash instance. It includes examples for different log levels and adding custom `extra` fields. Ensure environment variables `LOGSTASH_HOST` and `LOGSTASH_PORT` are set, or it will default to `localhost:5959`.

import logging
import logstash
import sys
import os

host = os.environ.get('LOGSTASH_HOST', 'localhost')
port = int(os.environ.get('LOGSTASH_PORT', '5959'))

test_logger = logging.getLogger('python-logstash-logger')
test_logger.setLevel(logging.INFO)

# Example for UDP handler
test_logger.addHandler(logstash.LogstashHandler(host, port, version=1))

# Example for TCP handler (uncomment to use)
# test_logger.addHandler(logstash.TCPLogstashHandler(host, port, version=1))

test_logger.error('python-logstash: test logstash error message.')
test_logger.info('python-logstash: test logstash info message.')
test_logger.warning('python-logstash: test logstash warning message.')

# Add extra fields to logstash message
extra = {
    'test_string': 'python version: ' + repr(sys.version_info),
    'test_boolean': True,
    'test_dict': {'a': 1, 'b': 'c'},
    'test_float': 1.23,
    'test_integer': 123,
    'test_list': [1, 2, '3'],
}
test_logger.info('python-logstash: test extra fields', extra=extra)

try:
    1 / 0
except ZeroDivisionError:
    test_logger.exception('python-logstash-logger: Exception with stack trace!')

view raw JSON →