LogStashLogger
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