ExKafkaLogger is a Elixir library that wraps Elixir.Logger in order to send all related logs to Kafka. It works using Poison and Kaffe.
This library automatically gets data from the default Elixir Logger and from
every request/response from your project. This data (and any data you might
want to send) is then parsed and sent to Kafka with a specified topic.
Documentation is avaiable online at https://hexdocs.pm/ex_kafka_logger.
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"}]
endAfter installing the library you will need to run the following command
$ mix deps.getThen you will also need to follow the subsequent configuration steps.
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 :logger, backends: [:console, ExKafkaLogger]
config :ex_kafka_logger,
kafka_topic: "your_logging_topic",
service_name: "your_app_name"
config :kaffe,
consumer: [
heroku_kafka_env: true,
topics: ["interesting-topic"],
consumer_group: "your-app-consumer-group",
message_handler: MessageProcessor
]Here is an example of how to use this library to log a simple Phoenix Application.