Logfmt

Decodes and encodes logfmt-style log lines

In logfmt-style log lines, data is encoded as a string of "key-value" pairs. Logfmt can encode a Dict into a string in this format, provided that its value types are String.t, number, and boolean.

It will decode a line in this format into a map, and attempt to coerce numbers and booleans into integers, floats, and booleans.

Source

Summary

decode(string)

Decodes the given line into a map

encode(list)

Encodes the given Dict into a Logfmt-style line

Functions

decode(string)

Specs:

Decodes the given line into a map

Examples

iex> Logfmt.decode "foo=bar baz=qux"
%{"foo" => "bar", "baz" => "qux"}

iex> Logfmt.decode ~s(foo="bar baz")
%{"foo" => "bar baz"}

iex> Logfmt.decode "foo=true"
%{"foo" => true}

iex> Logfmt.decode "foo=1"
%{"foo" => 1}
Source
encode(list)

Specs:

Encodes the given Dict into a Logfmt-style line

Examples

iex> Logfmt.encode [foo: "bar"]
"foo=bar"

iex> Logfmt.encode %{"foo" => "bar"}
"foo=bar"

iex> Logfmt.encode [foo: "bar baz"]
"foo=\"bar baz\""
Source