Skip to content
Logstash backend for the Elixir Logger
Elixir
Fetching latest commit…
Cannot retrieve the latest commit at this time.
Failed to load latest commit information.
config
lib
test
.gitignore
.travis.yml
LICENSE
README.md
mix.exs
mix.lock

README.md

Build Status

LoggerLogstashBackend

About

A backend for the Elixir Logger that will send logs to the Logstash UDP input.

Supported options

  • host: String.t. The hostname or ip address where to send the logs.
  • port: Integer. The port number. Logstash should be listening with its UDP inputter.
  • metadata: Keyword.t. Extra fields to be added when sending the logs. These will be merged with the metadata sent in every log message.
  • level: Atom. Minimum level for this backend.
  • type: String.t. Type of logs. Useful to filter in logstash.

Sample Logstash config

input {
  udp {
    codec => json
    port => 10001
    queue_size => 10000
    workers => 10
    type => default_log_type
  }
}
output {
  stdout {}
  elasticsearch {
    protocol => http
  }
}

Using it with Mix

To use it in your Mix projects, first add it as a dependency:

def deps do
  [{:logger_logstash_backend, "~> 2.1.0"}]
end

Then run mix deps.get to install it.

Configuration Examples

Runtime

Logger.add_backend {LoggerLogstashBackend, :debug}
Logger.configure {LoggerLogstashBackend, :debug},
  host: "127.0.0.1",
  port: 10001,
  level: :debug,
  metadata: ...

Application config

config :logger,
  backends: [{LoggerLogstashBackend, :error_log}, :console]

config :logger, :error_log,
  host: "some.host.com",
  port: 10001,
  level: :error,
  type: "my_type_of_app_or_node",
  metadata: [
    extra_fields: "go here"
  ]
Something went wrong with that request. Please try again.