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.
Summary↑
decode(string) | Decodes the given line into a map |
encode(list) | Encodes the given Dict into a Logfmt-style line |
Functions
Specs:
- decode(String.t) :: map
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}
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\""