Packages

rabbitex contains a set of tools that make working with RabbitMQ consume/produce pipelines easier

Retired package: Deprecated - Please use rabbit_mq_ex package instead

Current section

Files

Jump to
rabbitex lib core log_formatter.ex
Raw

lib/core/log_formatter.ex

defmodule Core.LogFormatter do
def format(level, message, {date, {hh, mm, ss, _ms}} = timestamp, metadata) do
iso_timestamp =
{date, {hh, mm, ss}}
|> NaiveDateTime.from_erl!()
|> DateTime.from_naive!("Etc/UTC")
meta =
metadata
|> Enum.into(%{})
|> Map.put(:timestamp, iso_timestamp)
|> Map.drop([:pid, :module, :function])
[
"\n",
"[#{level}] #{message}",
"METADATA: #{Jason.encode!(meta, pretty: true)}"
]
|> Enum.join("\n")
rescue
exception ->
[
"\n",
"Could not format message: #{inspect({level, message, timestamp, metadata})}.",
"Error: #{inspect(exception)}."
]
|> Enum.join("\n")
end
end