# ExJsonLogger
[](https://hex.pm/packages/ex_json_logger)
[](https://hexdocs.pm/ex_json_logger/)
[](https://hex.pm/packages/ex_json_logger)
[](https://github.com/rentpath/ex_json_logger/blob/master/LICENSE.md)
[](https://github.com/rentpath/ex_json_logger/commits/master)
A drop-in replacement for `:console`'s formatter. ExJsonLogger takes standard `Logger` calls and JSON encodes them.
Ecto and Plug loggers are also included.
## Installation
The package can be installed by adding `:ex_json_logger` to your list of
dependencies in `mix.exs`:
```elixir
def deps do
  [
    {:ex_json_logger, "~> 1.4.0"}
  ]
end
```
```elixir
config :logger, :console,
  format: {ExJsonLogger, :format},
  metadata: [
    :action,
    :controller,
    :duration,
    :format,
    :method,
    :path,
    :request_id,
    :status
  ]
```
For additional configuration and metadata option refer to `moduledocs`
## Documentation
Documentation is generated with [ExDoc](https://github.com/elixir-lang/ex_doc) and available online at [https://hexdocs.pm/ex_json_logger](https://hexdocs.pm/ex_json_logger)
 * Logger - *For more documentation reference `ExJsonLogger`*
 * Plug - *For more documentation reference `ExJsonLogger.Plug.Logger`*
 * Ecto - *For more documentation reference `ExJsonLogger.Ecto.Logger`*
## Running the tests
Tests include:
- Linter via [Credo](https://hex.pm/packages/credo)
- Coverage via [Excoveralls](https://hex.pm/packages/excoveralls)
- run tests: `script/test`
- run tests with coverage: `script/test --coverage`
## Running the benchmarks
A basic benchee benchmarking script is available for testing performance
improvements:
```bash
mix run bench/format.exs
```
## Contributing
-  If you modify code, add a corresponding test and documentation(if applicable).
-  Create a Pull Request (please squash to one concise commit).
-  Thanks!
## Copyright and License
Copyright (c) 2017 RentPath
This library licensed under the [MIT license](./LICENSE.md).