LogStashLogger
January 27, 2026 ยท View on GitHub
LogStashLogger extends Ruby's Logger class to log directly to
Logstash.
It supports writing to various outputs in logstash JSON format. This is an improvement over
writing to a file or syslog since Logstash can receive the structured data directly.
Features
- Can write directly to a logstash listener over a UDP or TCP/SSL connection.
- Can write to a file, Redis, Kafka, Kinesis, Firehose, a unix socket, syslog, stdout, or stderr.
- Logger can take a string message, a hash, a
LogStash::Event, an object, or a JSON string as input. - Events are automatically populated with message, timestamp, host, and severity.
- Writes in logstash JSON format, but supports other formats as well.
- Can write to multiple outputs.
- Log messages are buffered and automatically re-sent if there is a connection problem.
- Easily integrates with Rails via configuration.
Installation
Add this line to your application's Gemfile:
gem 'logstash-logger'
And then execute:
$ bundle
Or install it yourself as:
$ gem install logstash-logger
Ruby Compatibility
Verified to work with:
- MRI Ruby 3.2, 3.3, 3.4, 4.0
- JRuby 10.x
Ruby versions < 3.2 are EOL'ed and no longer supported.
Documentation
- Usage Examples - Logger types, formatters, and URI configuration
- Output Configuration - Logstash listener and HTTP setup
- SSL/TLS - Secure connections and hostname verification
- Customization - Custom fields, silencing, and error handling
- Buffering - Buffer settings, retries, and sync mode
- Rails Integration - Full Rails configuration guide
- Troubleshooting - Common issues and breaking changes
Contributing
- Fork it
- Create your feature branch (
git checkout -b my-new-feature) - Commit your changes (
git commit -am 'Add some feature') - Push to the branch (
git push origin my-new-feature) - Create new Pull Request