README.md

# EctoLoggerJson

Log ecto data as JSON with slightly different fields

## Dependencies
  * Poison
  * Ecto

## Installation

If [available in Hex](https://hex.pm/docs/publish), the package can be installed as:

  1. Add `ecto_logger_json` to your list of dependencies in `mix.exs`:

    ```elixir
    def deps do
      [{:ecto_logger_json, "~> 0.1.0"}]
    end
    ```

  2. Ensure `ecto_logger_json` is started before your application:

    ```elixir
    def application do
      [applications: [:ecto_logger_json]]
    end
    ```

  3. Configure ecto logging in `config/enviroment_name.exs`

    ```elixir
    config :my_app, MyApp.Repo,
    adapter: Ecto.Adapters.Postgres,
    ...
    loggers: [{Ecto.LoggerJSON, :log, [:info]}]
    ```

### Additonal Setup depending on your use case
*My recommendation would be to only log to a file and not console
otherwise stdout when you are in iex gets very noisy from all the db logs.*

  * Configure the logger (console)
    * Add to your `config/config.exs` or `config/env_name.exs`:

            config :logger, :console,
              format: "$message\n",
              level: :info,
              metadata: [:request_id]

  * Configure the logger (file)
    * Add `{:logger_file_backend, "~> 0.0.7"}` to your mix.exs
    * Run `mix deps.get`
    * Add to your `config/config.exs` or `config/env_name.exs`:

            config :logger, format: "$message\n", backends: [{LoggerFileBackend, :log_file}, :console]

            config :logger, :log_file,
              format: "$message\n",
              level: :info,
              metadata: [:request_id],
              path: "log/my_pipeline.log"

## Contributing
Before submitting your pull request, please run:
  * `mix credo --strict`
  * `mix coveralls`
  * `mix dialyzer`

Please squash your pull request's commits into a single commit with a message and
detailed description explaining the commit.