A Papertrail backend for Elixir Logger.
Available in Hex. The package can be installed as:
logger_papertrail_backend
to your list of dependencies in mix.exs
:def deps do
[{:logger_papertrail_backend, "~> 1.1"}]
end
logger
and logger_papertrail_backend
is started before your application (pre Elixir 1.4):def application do
[applications: [:logger, :logger_papertrail_backend]]
end
Logger
is in extra_applications
:def application do
[extra_applications: [:logger]]
end
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: :debug
Note: if you have an umbrella project, use your top config.exs
.
:host
values:level
for this backend (overides global :logger
-setting ):system_name
in Papertrail, defaults to current application-name[$level] $levelpad$metadata $message
, see Logger.Formatter:metadata_filter
- metadata terms which must be present in order to log. See LoggerFileBackend for examples.:colors
, :metadata
. See :console-docs in LoggerOct 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.