Skip to content

Logstash ​

LogstashSink sends log records to a Logstash instance over TCP or UDP in JSON format. Supports field prefixes and tags for filtering.

Installation ​

No additional dependencies required. This integration uses Python's standard library.

Usage ​

python
import logging
from logly.integrations.logstash import LogstashSink

logger = logging.getLogger("myapp")
logger.addHandler(LogstashSink(host="localhost", port=5044))
logger.setLevel(logging.INFO)

Configuration ​

ParameterDefaultDescription
host"localhost"Logstash host
port5959Logstash port
protocol"tcp""tcp" or "udp"
key_prefix""Prefix for extra fields
tags[]List of tags to add to each record
message_type"logstash"Message type field

Full Example ​

python
import logging
from logly.integrations.logstash import LogstashSink

logger = logging.getLogger("myapp")
logger.setLevel(logging.DEBUG)

# TCP handler
tcp_handler = LogstashSink(
    host="logstash.example.com",
    port=5959,
    protocol="tcp",
    key_prefix="app",
    tags=["production", "web"],
)
logger.addHandler(tcp_handler)

# UDP handler
udp_handler = LogstashSink(
    host="logstash.example.com",
    port=5045,
    protocol="udp",
)
logger.addHandler(udp_handler)

logger.info("Application started")
logger.warning("High memory usage")
logger.error("Request failed")

Released under the MIT License.