Skip to content
This repository has been archived by the owner on Dec 8, 2020. It is now read-only.
/ logfmt-elixir Public archive

🌲 A high performance logfmt parser for Elixir

License

MIT, Unlicense licenses found

Licenses found

MIT
LICENSE
Unlicense
UNLICENSE
Notifications You must be signed in to change notification settings

vectordotdev/logfmt-elixir

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

55 Commits
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 

Repository files navigation

Logfmt for Elixir

Travis Hex.pm Hex.pm

A simple logfmt decoder for elixir that uses binary scanning for high performance.

Brought to you by Timber.io. This library is used to parse millions of log lines every day.

Installation

# mix.exs

def deps do
  [{:timber_logfmt, "~> 1.0"}]
end

Usage

Using = as the delimiter

Logfmt.parse("key1=value1 key2=\"This is a quoted value\" key3=1")
=> {:ok, [key1: "value1", key2: "This is a quoted value", key3: "1"]}

Using : as the delimiter

Logfmt.parse("key1:value1 key2:\"This is a quoted value\" key3:1 key4")
=> {:ok, [key1: "value1", key2: "This is a quoted value", key3: "1", key4=true]}

Notable logfmt deviations

We deviated slightly from the logfmt spec:

  1. We accept : as a delimited in addition to =
  2. We do not cast or coerce values. All values will parsed into a string. This is because logfmt does not have any syntax for types. Ex: key:true could evaluate to true or "true".
  3. Values are decoded into a Keyword.t to preserve the order.
  4. Valueless keywords will error. In the context of logging, this makes virtually any string valid, which is not ideal.
  5. Unless keys are quoted, the charaters allowed are restricted.

Shoutout

If you appreciate this library, head over to timber.io.

License

Released into the public domain (see UNLICENSE). Optionally available under the ISC License (see LICENSE), meant especially for jurisdictions that do not recognize public domain works.

About

🌲 A high performance logfmt parser for Elixir

Topics

Resources

License

MIT, Unlicense licenses found

Licenses found

MIT
LICENSE
Unlicense
UNLICENSE

Stars

Watchers

Forks

Releases

No releases published

Packages

No packages published

Languages