LogfmtEx

Yet another logfmt log formatter for Elixir's :console logger backend.

In your app's logger configuration, specify the LogfmtEx module and its format function to be used to format your logs:

config :logger, :console,
format: {LogfmtEx, :format}

Installation

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

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

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

Configuration

While the library guidelines discourages application configuration, we have no way to pass a config to the formatter, so we have to rely on it.

The following configuration options are available under LogfmtEx, :opts:

Note

When specifying a function for the :console logger's :format option, there is no way to pass in additional config, so these configuration options are read for every call to the logger.

Encoding

Structs can be encoded via the LogfmtEx.ValueEncoder protocol.

defimpl LogfmtEx.ValueEncoder, for: Regex do
def encode(regex), do: inspect(regex)
end

Testing and Development

This library uses asdf to manage runtime versions of Elixir and Erlang.

Alternatives

LogfmtEx is a simple logfmt formatter specifically for the Elixir console backend. If you're looking for a library to encode and decode logfmt, take a look at logfmt-elixir instead.