benrom / logger_papertrail_backend

A Papertrail backend for Elixir Logger

Geek Repo:Geek Repo

Github PK Tool:Github PK Tool

LoggerPapertrailBackend

Hex.pm

A Papertrail backend for Elixir Logger.

Changelog

Installation

Available in Hex. The package can be installed as:

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

    def deps do [{:logger_papertrail_backend, "~> 0.1.0"}] end

  2. Ensure logger and logger_papertrail_backend is started before your application:

    def application do [applications: [:logger, :logger_papertrail_backend]] end

  3. In your config.exs (or in your #{Mix.env}.exs-files):

    config :logger, :logger_papertrail_backend, host: "logs.papertrailapp.com:", level: :warn, system_name: "Wizard", format: "$metadata $message"

Alternatively use :url for shorter config. Prepend with "papertrail://" or "syslog://" then host:port/system_name. We normally set an ENV-var: url: System.get_env("PAPERTRAIL_URL")

    config :logger, :logger_papertrail_backend,
      url: "papertrail://logs.papertrailapp.com:<port>/<system_name>",
      level: :warn,
      format: "$metadata $message"

Then config :logger to use the LoggerPapertrailBackend.Logger:

    config :logger,
      backends: [ :console,
        LoggerPapertrailBackend.Logger
      ],
      level: :debug

Note: if you have an umbrella project, use your top config.exs.

  • (Required) Follow "Add System" in your Papertrail dashboard to get :host values
  • (Optional) Set :level for this backend (overides global :logger-setting )
  • (Optional) Set specific :system_name in Papertrail, defaults to current application-name
  • (Optional) Set :format, defaults to [$level] $levelpad$metadata $message, see Logger.Formatter
  • Other supported options in config are :colors, :metadata. See :console-docs in Elixir.Logger

Example output:

Oct 02 14:19:04 Wizard UpptecSlack.SlackBot: [info] Successfully authenticated as user "wizard" on team "Upptec"

Papertrail sets timestamp when message arrives. Wizard is :system_name. UpptecSlack.SlackBot is the module sending the log. [Info] is level.

About

A Papertrail backend for Elixir Logger

License:MIT License


Languages

Language:Elixir 100.0%