ExKafkaLogger

TODO: Add description

Installation

If available in Hex, the package can be installed by adding ex_kafka_logger to your list of dependencies in mix.exs:

def deps do
  [{:ex_kafka_logger, "~> 0.1.0"}]
end

Configuration in 3 steps

Step 1

Add the ExKafkaLogger Plug on your Phoenix endpoint.ex file just above plug YourApp.Router

It should looks like:

# ...

  plug Plug.Session,
    store: :cookie,
    key: "_my_app_key",
    signing_salt: "SECRET_SALT"

  plug ExKafkaLogger.Plug
  plug MyApp.Router
end

Step 2

Create a handle_error function in the end of your router.ex file to catch the errors without let Phoenix send the default errors response, like the example below.

defp handle_errors(conn, _) do
  response = ExKafkaLogger.HttpError.template(conn.status)
  json(conn, response)
end

Step 3

Configure your application to make the Elixir Logger to use ExKafkaLogger as one of your backend and let ExKafkaLogger knows how to connect in your Kafka instance.

In your config/ENV.exs file add the lines like the example below.

config :ex_kafka_logger,
  kafka_topic: "logging",
  kafka_uris: [
    {"127.0.0.1", 9092}
  ],
  kafka_consumer_group: your_consumer_group,
  service_name: your_app_name

Documentation can be generated with ExDoc and published on HexDocs. Once published, the docs can be found at https://hexdocs.pm/ex_kafka_logger.