LoggerPapertrailBackend
A Papertrail backend for Elixir Logger.
Installation
Available in Hex. The package can be installed as:
-
Add
logger_papertrail_backendto your list of dependencies inmix.exs:
def deps do
[{:logger_papertrail_backend, "~> 1.1"}]
end-
Ensure
loggerandlogger_papertrail_backendis started before your application (pre Elixir 1.4):
def application do
[applications: [:logger, :logger_papertrail_backend]]
end-
Or after Elixir 1.4, just ensure
Loggeris inextra_applications:
def application do
[extra_applications: [:logger]]
end-
In your
config.exs(or in your#{Mix.env}.exs-files):
config :logger, :logger_papertrail_backend,
host: "logs.papertrailapp.com:<port>",
level: :warn,
system_name: "Wizard",
metadata_filter: [],
format: "$metadata $message"
Alternatively use :url for shorter config.
Prepend with “papertrail://“ (or whatever as long its a valid URI), then host:port/system_name. We normally set an ENV-var: url: System.get_env("PAPERTRAIL_URL") or url: "${PAPERTRAIL_URL}", if building releases with Distillery and REPLACE_OS_VARS=true.
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: :debugNote: if you have an umbrella project, use your top config.exs.
-
(Required) Follow “Add System” in your Papertrail dashboard to get
:hostvalues -
(Optional) Set
:levelfor this backend (overides global:logger-setting ) -
(Optional) Set specific
:system_namein Papertrail, defaults to current application-name -
(Optional) Set :format, defaults to
[$level] $levelpad$metadata $message, see Logger.Formatter -
(Optional) Set
:metadata_filter- metadata terms which must be present in order to log. See LoggerFileBackend for examples. -
Other supported options in config are
:colors,:metadata. See :console-docs in 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.