logger_json_file_backend

Logger backend that write a json map per line to a file


License
ISC

Documentation

LoggerJsonFileBackend

LoggerJsonFileBackend is elixir logger backend that writes json logs to a file.

Configuration

This logger backend provides follow options:

name description
path log file path. this option is "MUST"
level minimum logging level. default is :info
metadata included metadata keys list. detault is empty list
metadata_triming if false, ignoring previous metadata options and all metadata are output. default is true. It is recommended true in production environment.
json_encoder using json encoder. default poison
uuid If true, add uuid field to record. Default is false.

You need to add logger backend setting

config :logger,
  backends: [{LoggerJSONFileBackend, :log_name}]

config :logger, :log_name,
  path: "/var/log/my_app/app.log",
  level: :info,
  metadata: [:request_id, :user_id, :method, :path, :req_params],
  json_encoder: JSON, # or Poison
  uuid: true

Use case

This module is assumed to be used with a custom plug logger.

Logger.info("request", [
  method:     conn.method,
  path:       conn.request_path,
  req_params: conn.params,
])