README.md

# StructuredLogger

For now this library just provides a simple log formatter to be used alongside the default `:console` backend.

It's goal is to generate a flat key-value structure that is easily serializable in Logfmt (maybe JSON support can be added later). A flat structure is actually a design decision that:

- Makes it easier for humans to read the raw line
- Avoid accidentally leaking complex structures (which can in turn leak sensitive information)
- Allows simpler parsers to work (a simple regex should be able to filter by a given metadata)

The formatting is a pipeline comprised of:

- Starts with the existing metadata
- Adds a `level` metadata based on the log level
- Adds a `msg` metadata with the log message
- Transform complex objects into a collection of keys
  - For example, exceptions can be transformed into `exception.type` and `exception.message`
- Filter specific keys

## Installation

For now this package is only available through git, so to install you can add:

```elixir
def deps do
  [
    {:structured_logger, github: "bamorim/structured_logger"}
  ]
end
```