A TCP Logstash tranport for Winston

Downloads in past


131.0.184 years ago6 years agoMinified + gzip package size for logstash-tcp-wins in KB


Logstash TCP Wins
Inspired by the winston-logstash module but as that isn't actively maintained and doesn't support 3.0.0 of Winston, I decided to create my own

A Transport for Winston that allows for the sending of data to the Logstash TCP input plugin

npm i logstash-tcp-wins
Initialise the log transport like so:
const logger = createLogger({
    format: combine (
        label({ label: 'right meow!' }),
    transports: [
        new logstashTcpWins({
            level: "debug",
            port: 5000,
            json: true,
            host: "localhost",
            retryInterval: 2000,
            maxRetries: 1000,
            label: "test",
    exitOnError: false
Set up your logstash pipeline like this:
input {
    tcp {
        codec => json
        port => 5000

output {
    stdout { codec => rubydebug } 
    elasticsearch {
        hosts => "elasticsearch:9200"
See the app.js file in Github for requires.

Still to-do

At the moment, the recovery from a Logstash outage relies on 60s passing after the socket has reported it's connected which is pretty poor. Working on finding a way to be able to determine and rely on the socket being properly writeable to Logstash without resorting to time period. If you've got a way, please do create a PR.